LayoutTests:
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 May 2007 04:49:54 +0000 (04:49 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 May 2007 04:49:54 +0000 (04:49 +0000)
commit1c930d5270b62405c799612f289f0e9d67e7238e
treeb69733f86ba436c4afe80195bbd7dac79f0912dd
parentf58e0f85503fd676eee9b8d1114376860ab6f083
LayoutTests:

        Reviewed by Darin.

        - repaint test and updated results for http://bugs.webkit.org/show_bug.cgi?id=13655
          Incomplete repaint when text-shadow is used in a render layer with explicit height

        * fast/repaint/layer-full-repaint-expected.checksum: Added.
        * fast/repaint/layer-full-repaint-expected.png: Added.
        * fast/repaint/layer-full-repaint-expected.txt: Added.
        * fast/repaint/layer-full-repaint.html: Added.
        * fast/repaint/repaint-resized-overflow-expected.checksum:
        * fast/repaint/repaint-resized-overflow-expected.png:

WebCore:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13655
          Incomplete repaint when text-shadow is used in a render layer with explicit height

        Test: fast/repaint/layer-full-repaint.html

        Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
        knows how to do everything we need now. The only catch is that we cannot
        rely on its "do a full repaint if the object needs layout" behavior, since
        by the time we call it, the needs layout flag has been reset. The solution
        is to cache the need for a full repaint in the layer.

        * page/FrameView.cpp:
        (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
        (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
        flag with a m_needsFullRepaint flag, which indicates that the layer needs
        to do a full repaint in the next call to updateLayerPositions().
        (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
        Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
        m_needsFullRepaint.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::setNeedsFullRepaint):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@21390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/repaint/layer-full-repaint-expected.checksum [new file with mode: 0644]
LayoutTests/fast/repaint/layer-full-repaint-expected.png [new file with mode: 0644]
LayoutTests/fast/repaint/layer-full-repaint-expected.txt [new file with mode: 0644]
LayoutTests/fast/repaint/layer-full-repaint.html [new file with mode: 0644]
LayoutTests/fast/repaint/repaint-resized-overflow-expected.checksum
LayoutTests/fast/repaint/repaint-resized-overflow-expected.png
WebCore/ChangeLog
WebCore/page/FrameView.cpp
WebCore/rendering/RenderLayer.cpp
WebCore/rendering/RenderLayer.h
WebCore/rendering/RenderObject.cpp