Title: [110737] trunk/Source/WebCore
Revision
110737
Author
[email protected]
Date
2012-03-14 13:07:42 -0700 (Wed, 14 Mar 2012)

Log Message

Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
https://bugs.webkit.org/show_bug.cgi?id=81146
<rdar://problem/10850075>

Reviewed by Beth Dakin.

If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
can look really bad if layout happens in response to the page being scrolled.

* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (110736 => 110737)


--- trunk/Source/WebCore/ChangeLog	2012-03-14 19:58:02 UTC (rev 110736)
+++ trunk/Source/WebCore/ChangeLog	2012-03-14 20:07:42 UTC (rev 110737)
@@ -1,3 +1,18 @@
+2012-03-14  Anders Carlsson  <[email protected]>
+
+        Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
+        https://bugs.webkit.org/show_bug.cgi?id=81146
+        <rdar://problem/10850075>
+
+        Reviewed by Beth Dakin.
+
+        If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
+        to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
+        can look really bad if layout happens in response to the page being scrolled.
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::updateScrollbars):
+
 2012-03-14  Tommy Widenflycht  <[email protected]>
 
         MediaStream API (JSEP): Introducing IceCandidate

Modified: trunk/Source/WebCore/platform/ScrollView.cpp (110736 => 110737)


--- trunk/Source/WebCore/platform/ScrollView.cpp	2012-03-14 19:58:02 UTC (rev 110736)
+++ trunk/Source/WebCore/platform/ScrollView.cpp	2012-03-14 20:07:42 UTC (rev 110737)
@@ -590,7 +590,10 @@
             invalidateScrollCornerRect(oldScrollCornerRect);
     }
 
-    IntPoint adjustedScrollPosition = adjustScrollPositionWithinRange(IntPoint(desiredOffset));
+    IntPoint adjustedScrollPosition = IntPoint(desiredOffset);
+    if (overhangAmount().isZero())
+        adjustedScrollPosition = adjustScrollPositionWithinRange(adjustedScrollPosition);
+
     if (adjustedScrollPosition != scrollPosition() || scrollOriginChanged()) {
         ScrollableArea::scrollToOffsetWithoutAnimation(adjustedScrollPosition + IntSize(scrollOrigin().x(), scrollOrigin().y()));
         resetScrollOriginChanged();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to