Skip to content
  • simon.fraser@apple.com's avatar
    Fix compositing layers in columns · 560a8a50
    simon.fraser@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=120436
    
    Source/WebCore:
    
    Reviewed by Dave Hyatt.
    
    Remove the old hack in RenderLayer::updateLayerPosition() for placing
    layers in columns, which changed the layer position for composited
    layers; this broke hit-testing.
    
    Fix a better way by moving compositing layers to the correct
    positions that take column offsets into account, by fixing
    RenderLayer::convertToLayerCoords() to optionally apply column
    adjustment, and using this in the code which positions compositing layers.
    
    Tests: compositing/columns/ancestor-clipped-in-paginated.html
           compositing/columns/clipped-in-paginated.html
           compositing/columns/composited-columns-vertical-rl.html
           compositing/columns/composited-columns.html
           compositing/columns/composited-in-paginated-rl.html
           compositing/columns/composited-in-paginated-writing-mode-rl.html
           compositing/columns/composited-lr-paginated-repaint.html
           compositing/columns/composited-rl-paginated-repaint.html
           compositing/columns/hittest-composited-in-paginated.html
           compositing/columns/rotated-in-paginated.html
           compositing/columns/untransformed-composited-in-paginated.html
    
    * rendering/RenderLayer.cpp:
    (WebCore::RenderLayer::updateLayerPosition):
    (WebCore::RenderLayer::convertToPixelSnappedLayerCoords):
    (WebCore::accumulateOffsetTowardsAncestor):
    (WebCore::RenderLayer::convertToLayerCoords):
    * rendering/RenderLayer.h:
    * rendering/RenderLayerBacking.cpp:
    (WebCore::RenderLayerBacking::updateCompositedBounds):
    (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
    
    LayoutTests:
    
    Reviewed by Dave Hyatt.
    
    Various testcases for compositing in columns.
    
    * compositing/columns/ancestor-clipped-in-paginated-expected.txt: Added.
    * compositing/columns/ancestor-clipped-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/clipped-in-paginated-expected.txt: Added.
    * compositing/columns/clipped-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/composited-columns-expected.txt: Added.
    * compositing/columns/composited-columns-vertical-rl-expected.txt: Added.
    * compositing/columns/composited-columns-vertical-rl.html: Added.
    * compositing/columns/composited-columns.html: Added.
    * compositing/columns/composited-in-paginated-rl-expected.txt: Added.
    * compositing/columns/composited-in-paginated-rl.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: Added.
    * compositing/columns/composited-in-paginated-writing-mode-rl.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/composited-in-paginated.html:
    * compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
    * compositing/columns/composited-lr-paginated-repaint.html: Added.
    * compositing/columns/composited-nested-columns-expected.txt: Added.
    * compositing/columns/composited-nested-columns.html: Added.
    * compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
    * compositing/columns/composited-rl-paginated-repaint.html: Added.
    * compositing/columns/hittest-composited-in-paginated-expected.txt: Added.
    * compositing/columns/hittest-composited-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/rotated-in-paginated-expected.txt: Added.
    * compositing/columns/rotated-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    * compositing/columns/untransformed-composited-in-paginated-expected.txt: Added.
    * compositing/columns/untransformed-composited-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    560a8a50