Changeset 169312 in webkit
- Timestamp:
- May 24, 2014, 1:40:03 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
-
ChangeLog (modified) (1 diff)
-
page/scrolling/ScrollingTreeFrameScrollingNode.cpp (modified) (1 diff)
-
page/scrolling/ScrollingTreeFrameScrollingNode.h (modified) (2 diffs)
-
page/scrolling/ScrollingTreeScrollingNode.h (modified) (2 diffs)
-
page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h (modified) (2 diffs)
-
page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm (modified) (2 diffs)
-
page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h (modified) (2 diffs)
-
page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r169310 r169312 1 2014-05-23 Simon Fraser <simon.fraser@apple.com> 2 3 Share some more ScrollingTreeScrollingNode code 4 https://bugs.webkit.org/show_bug.cgi?id=133248 5 6 Reviewed by Sam Weinig. 7 8 Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition() 9 down to ScrollingTreeFrameScrollingNode. 10 11 This requires that scrollPosition() return the right thing for each class, so make 12 it virtual. Future patches will reduce the confusion between the committed scroll 13 position and the one derived from layers. 14 15 * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: 16 (WebCore::ScrollingTreeFrameScrollingNode::scrollBy): 17 (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints): 18 (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition): 19 * page/scrolling/ScrollingTreeFrameScrollingNode.h: 20 * page/scrolling/ScrollingTreeScrollingNode.h: 21 (WebCore::ScrollingTreeScrollingNode::scrollPosition): 22 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: 23 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: 24 (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted. 25 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted. 26 (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted. 27 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: 28 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: 29 (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): 30 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy): 31 (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints): 32 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition): 33 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition): 34 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted. 35 (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted. 36 1 37 2014-05-24 Chris Fleizach <cfleizach@apple.com> 2 38 -
trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp
r169063 r169312 73 73 m_topContentInset = state.topContentInset(); 74 74 } 75 75 76 void ScrollingTreeFrameScrollingNode::scrollBy(const FloatSize& offset) 77 { 78 setScrollPosition(scrollPosition() + offset); 79 } 80 81 void ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints(const FloatSize& offset) 82 { 83 setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset); 84 } 85 86 void ScrollingTreeFrameScrollingNode::setScrollPosition(const FloatPoint& scrollPosition) 87 { 88 FloatPoint newScrollPosition = scrollPosition; 89 newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition()); 90 newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition()); 91 92 setScrollPositionWithoutContentEdgeConstraints(newScrollPosition); 93 } 94 76 95 } // namespace WebCore 77 96 -
trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h
r169063 r169312 47 47 48 48 virtual void handleWheelEvent(const PlatformWheelEvent&) = 0; 49 virtual void setScrollPosition(const FloatPoint&) = 0;49 virtual void setScrollPosition(const FloatPoint&); 50 50 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) = 0; 51 51 … … 58 58 protected: 59 59 ScrollingTreeFrameScrollingNode(ScrollingTree&, ScrollingNodeID); 60 61 void scrollBy(const FloatSize&); 62 void scrollByWithoutContentEdgeConstraints(const FloatSize&); 60 63 61 64 float frameScaleFactor() const { return m_frameScaleFactor; } -
trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
r169063 r169312 65 65 virtual void setScrollLayerPosition(const FloatPoint&) = 0; 66 66 67 const FloatPoint&scrollPosition() const { return m_scrollPosition; }67 virtual FloatPoint scrollPosition() const { return m_scrollPosition; } 68 68 const FloatSize& scrollableAreaSize() const { return m_scrollableAreaSize; } 69 69 const FloatSize& totalContentsSize() const { return m_totalContentsSize; } … … 88 88 FloatSize m_totalContentsSize; 89 89 FloatSize m_totalContentsSizeForRubberBand; 90 FloatPoint m_scrollPosition; 90 FloatPoint m_scrollPosition; // FIXME: this is the committed scroll position. 91 91 IntPoint m_scrollOrigin; 92 92 -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h
r169063 r169312 49 49 virtual void handleWheelEvent(const PlatformWheelEvent&) override { } 50 50 51 FloatPoint scrollPosition() const; 52 virtual void setScrollPosition(const FloatPoint&) override; 51 virtual FloatPoint scrollPosition() const override; 53 52 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override; 54 53 … … 58 57 virtual void setScrollLayerPosition(const FloatPoint&) override; 59 58 60 FloatPoint minimumScrollPosition() const; 61 FloatPoint maximumScrollPosition() const; 62 63 void scrollBy(const IntSize&); 64 void scrollByWithoutContentEdgeConstraints(const IntSize&); 59 virtual FloatPoint minimumScrollPosition() const override; 60 virtual FloatPoint maximumScrollPosition() const override; 65 61 66 62 private: -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm
r169063 r169312 107 107 } 108 108 109 void ScrollingTreeFrameScrollingNodeIOS::setScrollPosition(const FloatPoint& scrollPosition)110 {111 FloatPoint newScrollPosition = scrollPosition;112 newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());113 newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());114 115 setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);116 }117 118 109 void ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints(const FloatPoint& scrollPosition) 119 110 { … … 212 203 } 213 204 214 void ScrollingTreeFrameScrollingNodeIOS::scrollBy(const IntSize& offset)215 {216 setScrollPosition(scrollPosition() + offset);217 }218 219 void ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints(const IntSize& offset)220 {221 setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);222 }223 224 205 } // namespace WebCore 225 206 -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h
r169063 r169312 66 66 virtual void adjustScrollPositionToBoundsIfNecessary() override; 67 67 68 FloatPoint scrollPosition() const;68 virtual FloatPoint scrollPosition() const override; 69 69 virtual void setScrollPosition(const FloatPoint&) override; 70 70 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override; … … 76 76 virtual FloatPoint minimumScrollPosition() const override; 77 77 virtual FloatPoint maximumScrollPosition() const override; 78 79 void scrollBy(const IntSize&);80 void scrollByWithoutContentEdgeConstraints(const IntSize&);81 78 82 79 void updateMainFramePinState(const FloatPoint& scrollPosition); -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
r169123 r169312 110 110 else { 111 111 CGPoint scrollLayerPosition = m_scrollLayer.get().position; 112 m_probableMainThreadScrollPosition = IntPoint(-scrollLayerPosition.x, -scrollLayerPosition.y);112 m_probableMainThreadScrollPosition = FloatPoint(-scrollLayerPosition.x, -scrollLayerPosition.y); 113 113 } 114 114 } … … 263 263 void ScrollingTreeFrameScrollingNodeMac::immediateScrollBy(const FloatSize& offset) 264 264 { 265 scrollBy( roundedIntSize(offset));265 scrollBy(offset); 266 266 } 267 267 268 268 void ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints(const FloatSize& offset) 269 269 { 270 scrollByWithoutContentEdgeConstraints( roundedIntSize(offset));270 scrollByWithoutContentEdgeConstraints(offset); 271 271 } 272 272 … … 316 316 317 317 CGPoint scrollLayerPosition = m_scrollLayer.get().position; 318 return IntPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());318 return FloatPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y()); 319 319 } 320 320 321 321 void ScrollingTreeFrameScrollingNodeMac::setScrollPosition(const FloatPoint& scrollPosition) 322 322 { 323 FloatPoint newScrollPosition = scrollPosition; 324 newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition()); 325 newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition()); 326 327 setScrollPositionWithoutContentEdgeConstraints(newScrollPosition); 323 ScrollingTreeFrameScrollingNode::setScrollPosition(scrollPosition); 328 324 329 325 if (scrollingTree().scrollingPerformanceLoggingEnabled()) … … 444 440 } 445 441 446 void ScrollingTreeFrameScrollingNodeMac::scrollBy(const IntSize& offset)447 {448 setScrollPosition(scrollPosition() + offset);449 }450 451 void ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints(const IntSize& offset)452 {453 setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);454 }455 456 442 void ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState(const FloatPoint& scrollPosition) 457 443 {
Note:
See TracChangeset
for help on using the changeset viewer.