Closed Bug 1112501 Opened 10 years ago Closed 10 years ago

ColumnSet, transforms, and fixed positions do not interact right

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla37

People

(Reporter: dvander, Assigned: dvander)

References

()

Details

Attachments

(2 files)

Attached file frame dump
Test case in URL, and frame dump attached. The <span> does not end up under the columnset, so it ends up with its reference frame being the viewport, whereas it should be the div since it has a transform.
Attached patch bug1112501.patchSplinter Review
Matt Woodrow helped me debug this - what we concluded is this:
 1. ConstructBlock() is asked to construct a blockframe for a columnset.
 2. aPositionedFrameForAbsPosContainer == blockFrame
 3. We construct a new columnSetBlock, and steal the style from blockframe.
 4. blockframe's style gets reset.
 5. When we PushAbsoluteContainingBlock, we still think aPositionedFrame is the old blockFrame (now the parent frame), so it appears untransformed.

This patch fixes up aPositionedFrameForAbsPosContainer, but it wasn't clear whether it's ever *not* == blockFrame, and if so, what the correct behavior is.
Attachment #8537698 - Flags: review?(dbaron)
Comment on attachment 8537698 [details] [diff] [review]
bug1112501.patch

I guess this is ok, although I think this parameter could probably be simplified into either a boolean or (through a series of refactorings) into no parameter at all.

Please add a reftest that fails without the patch and passes with the patch.

r=dbaron with that
Attachment #8537698 - Flags: review?(dbaron) → review+
https://hg.mozilla.org/mozilla-central/rev/bce8b4207a45
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla37
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: