Fixed <rdar://problem/7401617> Selection painting issue in hardware-
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Dec 2009 00:16:50 +0000 (00:16 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Dec 2009 00:16:50 +0000 (00:16 +0000)
commitbd9a8d1a6b27c6c0e79ad5bfeea3ea7ddefd17c3
tree2dc40c126176409c8b238484c6b0cbb9d496713a
parentd06186e1aafd713a323891848d91ddac8c7859fa
Fixed <rdar://problem/7401617> Selection painting issue in hardware-
accelerated layers
which is another part of https://bugs.webkit.org/show_bug.cgi?id=23628
Fix selection painting to do container-relative repaints

Reviewed by Darin Adler.

Test: fast/repaint/block-selection-gap-in-composited-layer.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRectsForRepaint): Compute and paint
gap rects in the coordinate space of the repaint container.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::recursiveRepaintLayerRect): Added a
FIXME.
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection): Map block selection gap rects from
the repaint container’s coordinate space to the view’s coordinate space
before adding them to the cached selection bounds.
(WebCore::RenderView::clearSelection): Changed to use
repaintRectangleInViewAndCompositedLayers() so that the selection rect
is invalidated in composited layers as well.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@51668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/fast/repaint/block-selection-gap-in-composited-layer.html [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderBlock.cpp
WebCore/rendering/RenderLayerCompositor.cpp
WebCore/rendering/RenderView.cpp