Skip to content
  • tonikitoo@webkit.org's avatar
    [BlackBerry] Tie up the scrolling machinery to the graphics tree when... · 9e1caad8
    tonikitoo@webkit.org authored
    [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: http://svn.webkit.org/repository/webkit/trunk@125071 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    9e1caad8