[BlackBerry] Tie up the scrolling machinery to the graphics tree when applicable...
authortonikitoo@webkit.org <tonikitoo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Aug 2012 19:21:52 +0000 (19:21 +0000)
committertonikitoo@webkit.org <tonikitoo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Aug 2012 19:21:52 +0000 (19:21 +0000)
commitd8f222df23524165f4a716e1cbbbd17f6c4453c7
tree46da6e0b3a576059960178e4e58b8df79099f31b
parentc89e5273253a522d3e2d7b449ac7c4bc1a1775ad
[BlackBerry] Tie up the scrolling machinery to the graphics tree when applicable for in-region scroll
https://bugs.webkit.org/show_bug.cgi?id=93482
PR #187672
Make InRegionScroller a simple public webkit/ API
PR #188677

Reviewed by Rob Buis.
Patch by Antonio Gomes <agomes@rim.com>

In order to prepare InRegionScroller to be a public API
in webkit/, the patch:

1) Renamed the current InRegionScroller class to InRegionScrollerPrivate;
2) Moved InRegionScroller.cpp|h from WebKitSupport/ to Api/;
3) Renamed InRegionScroller.h to InRegionScroller_p.h;
4) Added a new public class implementation to InRegionScroller.h;
5) Adapted WebPage and TouchEventHandler classes to use InRegionScroller::d directly.

The most important API here is '::compositedSetScrollPosition'

It is a  UI/Compositing thread method only and sets the associated LayerCompositingThread
(camouflaged as a unsigned) for each created InRegionScrollableArea that supports
composited scrolling.

The way ::compositedSetScrollPosition "scrolls" a layer is by setting the boundsOrigin
property to the LayerCompositingThread's 'override' property in the UI/Compositing thread.

* PlatformBlackBerry.cmake: Build system adaptation.

* Api/InRegionScroller.cpp: Renamed from Source/WebKit/blackberry/WebKitSupport/InRegionScroller.cpp.
(WebKit):
(BlackBerry::WebKit::InRegionScroller::InRegionScroller):
(BlackBerry::WebKit::InRegionScroller::~InRegionScroller):
(BlackBerry::WebKit::InRegionScroller::compositedSetScrollPosition):
(BlackBerry::WebKit::InRegionScrollerPrivate::InRegionScrollerPrivate):
(BlackBerry::WebKit::InRegionScrollerPrivate::setNode):
(BlackBerry::WebKit::InRegionScrollerPrivate::node):
(BlackBerry::WebKit::InRegionScrollerPrivate::reset):
(BlackBerry::WebKit::InRegionScrollerPrivate::hasNode):
(BlackBerry::WebKit::InRegionScrollerPrivate::canScroll):
(BlackBerry::WebKit::InRegionScrollerPrivate::compositedSetScrollPosition):
(BlackBerry::WebKit::InRegionScrollerPrivate::scrollBy):
(BlackBerry::WebKit::InRegionScrollerPrivate::inRegionScrollableAreasForPoint):
(BlackBerry::WebKit::InRegionScrollerPrivate::scrollNodeRecursively):
(BlackBerry::WebKit::InRegionScrollerPrivate::scrollRenderer):
(BlackBerry::WebKit::InRegionScrollerPrivate::adjustScrollDelta):
(BlackBerry::WebKit::canScrollInnerFrame):
(BlackBerry::WebKit::canScrollRenderBox):
(BlackBerry::WebKit::parentLayer):
(BlackBerry::WebKit::enclosingLayerNode):
(BlackBerry::WebKit::isNonRenderViewFixedPositionedContainer):
(BlackBerry::WebKit::pushBackInRegionScrollable):
* Api/InRegionScroller.h: Copied from Source/WebKit/blackberry/WebKitSupport/InRegionScroller.h.
(WebKit):
(InRegionScroller):
* Api/InRegionScroller_p.h: Renamed from Source/WebKit/blackberry/WebKitSupport/InRegionScroller.h.
(WebCore):
(WebKit):
(InRegionScrollerPrivate):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::scrollBy):
(BlackBerry::WebKit::WebPagePrivate::notifyInRegionScrollStatusChanged):
(BlackBerry::WebKit::WebPagePrivate::clearDocumentData):
(BlackBerry::WebKit::WebPagePrivate::setScrollOriginPoint):
(BlackBerry::WebKit::WebPage::inRegionScroller):
(WebKit):
* Api/WebPage.h:
(WebKit):
* WebKitSupport/InRegionScrollableArea.cpp:
(BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
* WebKitSupport/TouchEventHandler.cpp:
(BlackBerry::WebKit::TouchEventHandler::drawTapHighlight):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@125071 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/ChangeLog
Source/WebKit/PlatformBlackBerry.cmake
Source/WebKit/blackberry/Api/InRegionScroller.cpp [moved from Source/WebKit/blackberry/WebKitSupport/InRegionScroller.cpp with 82% similarity]
Source/WebKit/blackberry/Api/InRegionScroller.h [new file with mode: 0644]
Source/WebKit/blackberry/Api/InRegionScroller_p.h [moved from Source/WebKit/blackberry/WebKitSupport/InRegionScroller.h with 85% similarity]
Source/WebKit/blackberry/Api/WebPage.cpp
Source/WebKit/blackberry/Api/WebPage.h
Source/WebKit/blackberry/ChangeLog
Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp