RESOLVED FIXED 18885
RenderLayer::enclosingPositionedAncestor should look at transforms
https://bugs.webkit.org/show_bug.cgi?id=18885
Summary RenderLayer::enclosingPositionedAncestor should look at transforms
Simon Fraser (smfr)
Reported 2008-05-04 11:48:57 PDT
It seems that RenderLayer::enclosingPositionedAncestor() should look for transforms when walking up the RenderLayer tree for a layer to be treated as its positioned ancestor. I noticed this while debugging: convertToLayerCoords() would give the wrong answer if there was an intermediate layer in the tree for a transformed element which was not positioned (will attach sample).
Attachments
Sample with two sets of divs, one of which has a transform. (1.06 KB, text/html)
2008-05-04 11:49 PDT, Simon Fraser (smfr)
no flags
Testcase, but it requires visual inspection (1.19 KB, text/html)
2008-07-10 14:47 PDT, Simon Fraser (smfr)
no flags
Patch (1.27 KB, patch)
2008-07-10 14:49 PDT, Simon Fraser (smfr)
no flags
Patch, testcase, changelog (5.68 KB, patch)
2008-07-11 10:54 PDT, Simon Fraser (smfr)
hyatt: review+
Simon Fraser (smfr)
Comment 1 2008-05-04 11:49:35 PDT
Created attachment 20960 [details] Sample with two sets of divs, one of which has a transform.
Simon Fraser (smfr)
Comment 2 2008-07-10 14:47:43 PDT
Created attachment 22213 [details] Testcase, but it requires visual inspection
Simon Fraser (smfr)
Comment 3 2008-07-10 14:48:14 PDT
Filed bug 19982 on enhancing DRT to dump info about transforms.
Simon Fraser (smfr)
Comment 4 2008-07-10 14:49:22 PDT
Created attachment 22214 [details] Patch Patch to enclosingPositionedAncestor() to respect transforms. Also removed some bogus semicolons.
Dave Hyatt
Comment 5 2008-07-10 15:13:40 PDT
Comment on attachment 22214 [details] Patch Pretty sure the semicolons were needed to stop some bizarre compile error on some platform. I tried to remove this code in an earlier patch as well and was told it was needed.
Dave Hyatt
Comment 6 2008-07-10 15:14:25 PDT
Although maybe the empty braces would be sufficient for whatever platform was complaining. I think bdash would remember.
Simon Fraser (smfr)
Comment 7 2008-07-10 16:23:40 PDT
How about rewriting those as while() loops? The for loops make my head hurt.
Simon Fraser (smfr)
Comment 8 2008-07-10 16:37:48 PDT
bdash says that for (...) { } is OK. It's for (...); that had issues.
Simon Fraser (smfr)
Comment 9 2008-07-11 10:54:07 PDT
Created attachment 22249 [details] Patch, testcase, changelog
Dave Hyatt
Comment 10 2008-07-11 11:34:16 PDT
Comment on attachment 22249 [details] Patch, testcase, changelog r=me
Dean Jackson
Comment 11 2008-07-11 15:35:20 PDT
Committing to http://svn.webkit.org/repository/webkit/trunk ... M LayoutTests/ChangeLog A LayoutTests/fast/transforms/transform-positioned-ancestor.html A LayoutTests/platform/mac/fast/transforms/transform-positioned-ancestor-expected.txt M WebCore/ChangeLog M WebCore/rendering/RenderLayer.cpp Committed r35138
Note You need to log in before you can comment on or make changes to this bug.