Skip to content
  • simon.fraser@apple.com's avatar
    2010-01-22 Simon Fraser <simon.fraser@apple.com> · 6292580c
    simon.fraser@apple.com authored
            Reviewed by Dan Bernstein.
    
            REGRESSION (r53110): Find My iPhone message dialog is offset from original position once it gets focus
            https://bugs.webkit.org/show_bug.cgi?id=33821
    
            Fix an issue with the geometry of fixed position, composited layers inside other
            composited layers. If we called convertToLayerCoords() on a fixed layer with an ancestor
            layer which is not the root, then we assumed that the fixed layer had a positioning root.
            However, this is not always the case, since the fixed layer may have a compositing ancestor
            which is not a fixed container.
    
            Test: compositing/geometry/fixed-in-composited.html
    
            * rendering/RenderLayer.cpp:
            (WebCore::isFixedPositionedContainer): Utility function to test whether a layer acts
            as a fixed position container.
    
            (WebCore::RenderLayer::convertToLayerCoords): When called on a fixed position layer
            for an ancestor layer that is not the root, compute the correct offsets by looking for
            the fixed position container, and computing offsets relative to that. If the ancestorLayer
            is the fixed position container, fall through to the existing code that is shared
            with absolutely positioned layers.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    6292580c