WebCore:
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Dec 2007 19:24:19 +0000 (19:24 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Dec 2007 19:24:19 +0000 (19:24 +0000)
commite9c0297e5d1a0ae5eb70ca33da3f675d3fcb0867
tree4b44e17ccddbd1161d63954fc0f52a34e14c379e
parented5a8cef34b0112081c04ba8f7af3554627d53f6
WebCore:

        Reviewed by Darin Adler.

        - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        Test: fast/repaint/focus-ring.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::caretRepaintRect): Changed to return just
        the caret rect without any padding.
        (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
        just the caret rect without any padding.
        * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
        clearFocusRingClip().
        * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
        * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
        * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
        m_focusRingClip member.
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::drawFocusRing): Changed to call
        wkDrawFocusRing() once without setting up additional clip. On Leopard,
        wkDrawFocusRing() respects the context clip now. On Tiger, a
        transparency layer is used to apply clipping to the focus ring.
        * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
        methods and member.
        * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
        * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
        to wkDrawFocusRing().
        * platform/mac/WebCoreSystemInterface.mm: Ditto.
        * rendering/RenderLayer.cpp:
        (WebCore::setClip): Removed call to set the focus ring clip.
        (WebCore::restoreClip): Removed call to reset the focus ring clip.

WebKitLibraries:

        Reviewed by Darin Adler.

        - updated system interface for fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

LayoutTests:

        Reviewed by Darin Adler.

        - repaint test for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        * fast/repaint/focus-ring.html: Added.
        * platform/mac/fast/repaint/focus-ring-expected.checksum: Added.
        * platform/mac/fast/repaint/focus-ring-expected.png: Added.
        * platform/mac/fast/repaint/focus-ring-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
21 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/repaint/focus-ring.html [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/focus-ring-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/focus-ring-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/focus-ring-expected.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/editing/SelectionController.cpp
WebCore/platform/graphics/GraphicsContext.h
WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp
WebCore/platform/graphics/cg/GraphicsContextCG.cpp
WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h
WebCore/platform/graphics/mac/GraphicsContextMac.mm
WebCore/platform/graphics/qt/GraphicsContextQt.cpp
WebCore/platform/graphics/wx/GraphicsContextWx.cpp
WebCore/platform/mac/WebCoreSystemInterface.h
WebCore/platform/mac/WebCoreSystemInterface.mm
WebCore/rendering/RenderLayer.cpp
WebKitLibraries/ChangeLog
WebKitLibraries/WebKitSystemInterface.h
WebKitLibraries/libWebKitSystemInterfaceLeopard.a
WebKitLibraries/libWebKitSystemInterfaceTiger.a