[wk2] TiledCoreAnimationDrawingArea should support scrolling its exposed rect
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jul 2013 21:47:51 +0000 (21:47 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jul 2013 21:47:51 +0000 (21:47 +0000)
commit6e2e276857568d9feec3626f19740855f19b3370
tree4b96edc3c7aefd65cc981c968211e5c673f5511d
parentfc5f0a1eb94fe471e5f2cb3053cfcbf9a0c07a6b
[wk2] TiledCoreAnimationDrawingArea should support scrolling its exposed rect
https://bugs.webkit.org/show_bug.cgi?id=118173
<rdar://problem/14301166>

Reviewed by Anders Carlsson.

Offset the exposed rect passed from the WKView by the main frame's current scroll position
before sending it to our TiledBackings, so that it is in the same coordinate space as their
ordinary visibleRects.

This has the side effect of making clips-to-exposed-rect testable (though useless) in Safari.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
Add updateScrolledExposedRect() and m_scrolledExposedRect.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
Call updateScrolledExposedRect when the main frame scrolls.

(WebKit::TiledCoreAnimationDrawingArea::setExposedRect):
Remove a FIXME about this change.
Call updateScrolledExposedRect instead of passing down the unscrolled rect.

(WebKit::TiledCoreAnimationDrawingArea::setClipsToExposedRect):
Call updateScrolledExposedRect, because that method will short-circuit if
setClipsToExposedRect is false, so we need to update here for correctness
if we get a setExposedRect(), setClipsToExposedRect(true) pair.

(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
Update m_scrolledExposedRect and propagate it to our TiledBackings.

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
(WebKit::TiledCoreAnimationDrawingArea::didCommitChangesForLayer):
Use the scrolled exposed rect.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@152266 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm