Title: [165091] trunk/Source/WebCore
Revision
165091
Author
[email protected]
Date
2014-03-04 18:54:31 -0800 (Tue, 04 Mar 2014)

Log Message

Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
https://bugs.webkit.org/show_bug.cgi?id=129724

Reviewed by Sam Weinig.

Call setScrollPositionWithoutContentEdgeConstraints() from
ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
layers are not clamped during rubber-banding.

This requires making setScrollPositionWithoutContentEdgeConstraints()
a pure virtual function on the base class.

* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (165090 => 165091)


--- trunk/Source/WebCore/ChangeLog	2014-03-05 02:35:18 UTC (rev 165090)
+++ trunk/Source/WebCore/ChangeLog	2014-03-05 02:54:31 UTC (rev 165091)
@@ -1,3 +1,23 @@
+2014-03-04  Simon Fraser  <[email protected]>
+
+        Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=129724
+
+        Reviewed by Sam Weinig.
+        
+        Call setScrollPositionWithoutContentEdgeConstraints() from
+        ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
+        layers are not clamped during rubber-banding.
+        
+        This requires making setScrollPositionWithoutContentEdgeConstraints()
+        a pure virtual function on the base class.
+
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
+        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
+
 2014-03-04  Jeremy Jones  <[email protected]>
 
         WebVideoFullscreen, should make the hand off of the video layer explicit.

Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp (165090 => 165091)


--- trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp	2014-03-05 02:35:18 UTC (rev 165090)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp	2014-03-05 02:54:31 UTC (rev 165091)
@@ -107,7 +107,7 @@
     if (node->nodeType() != ScrollingNode)
         return;
 
-    toScrollingTreeScrollingNode(node)->setScrollPosition(scrollPosition);
+    toScrollingTreeScrollingNode(node)->setScrollPositionWithoutContentEdgeConstraints(scrollPosition);
 }
 
 void ScrollingTree::commitNewTreeState(PassOwnPtr<ScrollingStateTree> scrollingStateTree)

Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h (165090 => 165091)


--- trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h	2014-03-05 02:35:18 UTC (rev 165090)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h	2014-03-05 02:54:31 UTC (rev 165091)
@@ -51,6 +51,7 @@
 
     virtual void handleWheelEvent(const PlatformWheelEvent&) = 0;
     virtual void setScrollPosition(const FloatPoint&) = 0;
+    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) = 0;
 
     SynchronousScrollingReasons synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
     bool shouldUpdateScrollLayerPositionSynchronously() const { return m_synchronousScrollingReasons; }

Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h (165090 => 165091)


--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h	2014-03-05 02:35:18 UTC (rev 165090)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h	2014-03-05 02:54:31 UTC (rev 165091)
@@ -50,7 +50,7 @@
 
     FloatPoint scrollPosition() const;
     virtual void setScrollPosition(const FloatPoint&) override;
-    void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&);
+    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override;
 
     void setScrollLayerPosition(const FloatPoint&);
 

Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h (165090 => 165091)


--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h	2014-03-05 02:35:18 UTC (rev 165090)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h	2014-03-05 02:54:31 UTC (rev 165091)
@@ -67,7 +67,7 @@
 
     FloatPoint scrollPosition() const;
     virtual void setScrollPosition(const FloatPoint&) override;
-    void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&);
+    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override;
 
     void setScrollLayerPosition(const FloatPoint&);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to