Title: [106711] trunk/Source/WebCore
Revision
106711
Author
[email protected]
Date
2012-02-03 17:05:24 -0800 (Fri, 03 Feb 2012)

Log Message

Apply changed properties from the updated scrolling tree state
https://bugs.webkit.org/show_bug.cgi?id=77792

Reviewed by Andreas Kling.

* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::update):
Update the tree node properties from the scrolling tree state.

* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::scrollingTree):
(WebCore::ScrollingTreeNode::viewportRect):
(WebCore::ScrollingTreeNode::contentsSize):
Add getters.

* page/scrolling/ScrollingTreeState.h:
(WebCore::ScrollingTreeState::changedProperties):
New function for accessing the changed properties of the scrolling tree state.

* page/scrolling/mac/ScrollingTreeNodeMac.h:
* page/scrolling/mac/ScrollingTreeNodeMac.mm:
(WebCore::ScrollingTreeNodeMac::update):
Update the scroll layer from the scrolling tree if necessary.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (106710 => 106711)


--- trunk/Source/WebCore/ChangeLog	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/ChangeLog	2012-02-04 01:05:24 UTC (rev 106711)
@@ -1,3 +1,29 @@
+2012-02-03  Anders Carlsson  <[email protected]>
+
+        Apply changed properties from the updated scrolling tree state
+        https://bugs.webkit.org/show_bug.cgi?id=77792
+
+        Reviewed by Andreas Kling.
+
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::update):
+        Update the tree node properties from the scrolling tree state.
+
+        * page/scrolling/ScrollingTreeNode.h:
+        (WebCore::ScrollingTreeNode::scrollingTree):
+        (WebCore::ScrollingTreeNode::viewportRect):
+        (WebCore::ScrollingTreeNode::contentsSize):
+        Add getters.
+
+        * page/scrolling/ScrollingTreeState.h:
+        (WebCore::ScrollingTreeState::changedProperties):
+        New function for accessing the changed properties of the scrolling tree state.
+
+        * page/scrolling/mac/ScrollingTreeNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
+        (WebCore::ScrollingTreeNodeMac::update):
+        Update the scroll layer from the scrolling tree if necessary.
+
 2012-02-03  Brady Eidson  <[email protected]>
 
         <rdar://problem/10742441> and https://bugs.webkit.org/show_bug.cgi?id=77766

Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp (106710 => 106711)


--- trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp	2012-02-04 01:05:24 UTC (rev 106711)
@@ -28,6 +28,8 @@
 
 #if ENABLE(THREADED_SCROLLING)
 
+#include "ScrollingTreeState.h"
+
 namespace WebCore {
 
 ScrollingTreeNode::ScrollingTreeNode(ScrollingTree* scrollingTree)
@@ -39,9 +41,13 @@
 {
 }
 
-void ScrollingTreeNode::update(ScrollingTreeState*)
+void ScrollingTreeNode::update(ScrollingTreeState* state)
 {
-    // FIXME: Update the tree node properties.
+    if (state->changedProperties() & ScrollingTreeState::ViewportRect)
+        m_viewportRect = state->viewportRect();
+
+    if (state->changedProperties() & ScrollingTreeState::ContentsSize)
+        m_contentsSize = state->contentsSize();
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h (106710 => 106711)


--- trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h	2012-02-04 01:05:24 UTC (rev 106711)
@@ -28,6 +28,7 @@
 
 #if ENABLE(THREADED_SCROLLING)
 
+#include "IntRect.h"
 #include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
@@ -45,8 +46,15 @@
 protected:
     explicit ScrollingTreeNode(ScrollingTree*);
 
+    ScrollingTree* scrollingTree() const { return m_scrollingTree; }
+    const IntRect& viewportRect() const { return m_viewportRect; }
+    const IntSize& contentsSize() const { return m_contentsSize; }
+
 private:
     ScrollingTree* m_scrollingTree;
+
+    IntRect m_viewportRect;
+    IntSize m_contentsSize;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeState.h (106710 => 106711)


--- trunk/Source/WebCore/page/scrolling/ScrollingTreeState.h	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeState.h	2012-02-04 01:05:24 UTC (rev 106711)
@@ -54,6 +54,7 @@
     };
 
     bool hasChangedProperties() const { return m_changedProperties; }
+    unsigned changedProperties() const { return m_changedProperties; }
 
     const IntRect& viewportRect() const { return m_viewportRect; }
     void setViewportRect(const IntRect&);

Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.h (106710 => 106711)


--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.h	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.h	2012-02-04 01:05:24 UTC (rev 106711)
@@ -40,6 +40,8 @@
     explicit ScrollingTreeNodeMac(ScrollingTree*);
 
 private:
+    virtual void update(ScrollingTreeState*) OVERRIDE;
+
     RetainPtr<CALayer> m_scrollLayer;
 };
 

Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.mm (106710 => 106711)


--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.mm	2012-02-04 00:57:33 UTC (rev 106710)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeNodeMac.mm	2012-02-04 01:05:24 UTC (rev 106711)
@@ -28,6 +28,8 @@
 
 #if ENABLE(THREADED_SCROLLING)
 
+#include "ScrollingTreeState.h"
+
 namespace WebCore {
 
 PassOwnPtr<ScrollingTreeNode> ScrollingTreeNode::create(ScrollingTree* scrollingTree)
@@ -40,6 +42,14 @@
 {
 }
 
+void ScrollingTreeNodeMac::update(ScrollingTreeState* state)
+{
+    ScrollingTreeNode::update(state);
+
+    if (state->changedProperties() & ScrollingTreeState::ScrollLayer)
+        m_scrollLayer = state->platformScrollLayer();
+}
+
 } // namespace WebCore
 
 #endif // ENABLE(THREADED_SCROLLING)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to