[Webkit-unassigned] [Bug 104276] REGRESSION (r133807): Sticky-position review bar on bugzilla review page is jumpy
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 31 22:49:47 PST 2013
https://bugs.webkit.org/show_bug.cgi?id=104276
--- Comment #17 from Simon Fraser (smfr) <simon.fraser at apple.com> 2013-01-31 22:51:48 PST ---
Hacky patch:
diff --git a/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm b/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm
index 300a12d28d13ab44ff47a5ad76d42bae9d25ae37..df0f1166f3d03c261acbf4cea4e116c98e06a8fa 100644
--- a/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm
+++ b/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm
@@ -440,6 +440,7 @@ void ScrollingCoordinatorMac::updateViewportConstrainedNode(ScrollingNodeID node
break;
}
}
+ scheduleTreeStateCommit();
}
void ScrollingCoordinatorMac::scheduleTreeStateCommit()
diff --git a/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h b/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h
index fe1c2420b9109500d1fc4bbede85d3dc01cc482a..192e4207108be60b615f3d15a04e95af692b6f58 100644
--- a/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h
+++ b/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h
@@ -72,6 +72,7 @@ private:
void scrollBy(const IntSize&);
void scrollByWithoutContentEdgeConstraints(const IntSize&);
+ void updateScrollPosition(const IntPoint&);
void updateMainFramePinState(const IntPoint& scrollPosition);
void logExposedUnfilledArea();
diff --git a/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm b/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm
index 663c7341b68f8baf911f4620f61f172e59d0b291..8acddd12fbb54220291cf931fed58366c66d2675 100644
--- a/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm
+++ b/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm
@@ -77,7 +77,7 @@ void ScrollingTreeScrollingNodeMac::update(ScrollingStateNode* stateNode)
m_counterScrollingLayer = state->counterScrollingPlatformLayer();
if (state->changedProperties() & ScrollingStateScrollingNode::RequestedScrollPosition)
- setScrollPosition(state->requestedScrollPosition());
+ updateScrollPosition(state->requestedScrollPosition());
if (state->scrollLayerDidChange() || state->changedProperties() & (ScrollingStateScrollingNode::ContentsSize | ScrollingStateScrollingNode::ViewportRect))
updateMainFramePinState(scrollPosition());
@@ -336,6 +336,20 @@ void ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints(const
setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
}
+void ScrollingTreeScrollingNodeMac::updateScrollPosition(const IntPoint& scrollPosition)
+{
+ IntPoint newScrollPosition = scrollPosition;
+ newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
+ newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
+
+ updateMainFramePinState(newScrollPosition);
+
+// {
+// MutexLocker lock(m_mutex);
+// m_mainFrameScrollPosition = newScrollPosition;
+// }
+}
+
void ScrollingTreeScrollingNodeMac::updateMainFramePinState(const IntPoint& scrollPosition)
{
bool pinnedToTheLeft = scrollPosition.x() <= minimumScrollPosition().x();
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list