Title: [158139] branches/safari-537.73-branch/Source

Diff

Modified: branches/safari-537.73-branch/Source/WebCore/ChangeLog (158138 => 158139)


--- branches/safari-537.73-branch/Source/WebCore/ChangeLog	2013-10-28 22:13:09 UTC (rev 158138)
+++ branches/safari-537.73-branch/Source/WebCore/ChangeLog	2013-10-28 22:20:44 UTC (rev 158139)
@@ -1,5 +1,23 @@
 2013-10-28  Lucas Forschler  <[email protected]>
 
+        Merge r156416
+
+    2013-09-24  Roger Fong  <[email protected]>
+
+            [Windows] Overpanning occurs even when what is being panned isn't the main document.
+            https://bugs.webkit.org/show_bug.cgi?id=121885.
+            <rdar://problem/15072332>.
+
+            Reviewed by Brent Fulgham.
+
+            No new functionality added.
+
+            * rendering/RenderLayer.cpp:
+            (WebCore::RenderLayer::scrollByRecursively):
+            * rendering/RenderLayer.h:
+
+2013-10-28  Lucas Forschler  <[email protected]>
+
         Merge r156219
 
     2013-09-20  Roger Fong  <[email protected]>

Modified: branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.cpp (158138 => 158139)


--- branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.cpp	2013-10-28 22:13:09 UTC (rev 158138)
+++ branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.cpp	2013-10-28 22:20:44 UTC (rev 158139)
@@ -2124,7 +2124,7 @@
     scrollByRecursively(adjustedScrollDelta(delta), ScrollOffsetClamped);
 }
 
-void RenderLayer::scrollByRecursively(const IntSize& delta, ScrollOffsetClamping clamp, ScrollView** scrolledView)
+void RenderLayer::scrollByRecursively(const IntSize& delta, ScrollOffsetClamping clamp, ScrollableArea** scrolledArea)
 {
     if (delta.isZero())
         return;
@@ -2136,13 +2136,14 @@
     if (renderer()->hasOverflowClip() && !restrictedByLineClamp) {
         IntSize newScrollOffset = scrollOffset() + delta;
         scrollToOffset(newScrollOffset, clamp);
-        *scrolledView = renderer()->view()->frameView();
+        if (scrolledArea)
+            *scrolledArea = this;
 
         // If this layer can't do the scroll we ask the next layer up that can scroll to try
         IntSize remainingScrollOffset = newScrollOffset - scrollOffset();
         if (!remainingScrollOffset.isZero() && renderer()->parent()) {
             if (RenderLayer* scrollableLayer = enclosingScrollableLayer())
-                scrollableLayer->scrollByRecursively(remainingScrollOffset, clamp, scrolledView);
+                scrollableLayer->scrollByRecursively(remainingScrollOffset, clamp, scrolledArea);
 
             Frame* frame = renderer()->frame();
             if (frame)
@@ -2152,7 +2153,8 @@
         // If we are here, we were called on a renderer that can be programmatically scrolled, but doesn't
         // have an overflow clip. Which means that it is a document node that can be scrolled.
         renderer()->view()->frameView()->scrollBy(delta);
-        *scrolledView = renderer()->view()->frameView();
+        if (scrolledArea)
+            *scrolledArea = renderer()->view()->frameView();
 
         // FIXME: If we didn't scroll the whole way, do we want to try looking at the frames ownerElement? 
         // https://bugs.webkit.org/show_bug.cgi?id=28237

Modified: branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.h (158138 => 158139)


--- branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.h	2013-10-28 22:13:09 UTC (rev 158138)
+++ branches/safari-537.73-branch/Source/WebCore/rendering/RenderLayer.h	2013-10-28 22:20:44 UTC (rev 158139)
@@ -392,7 +392,7 @@
     };
 
     // Scrolling methods for layers that can scroll their overflow.
-    void scrollByRecursively(const IntSize&, ScrollOffsetClamping = ScrollOffsetUnclamped, ScrollView** scrolledView = 0);
+    void scrollByRecursively(const IntSize&, ScrollOffsetClamping = ScrollOffsetUnclamped, ScrollableArea** scrolledArea = 0);
     void scrollToOffset(const IntSize&, ScrollOffsetClamping = ScrollOffsetUnclamped);
     void scrollToXOffset(int x, ScrollOffsetClamping clamp = ScrollOffsetUnclamped) { scrollToOffset(IntSize(x, scrollYOffset()), clamp); }
     void scrollToYOffset(int y, ScrollOffsetClamping clamp = ScrollOffsetUnclamped) { scrollToOffset(IntSize(scrollXOffset(), y), clamp); }

Modified: branches/safari-537.73-branch/Source/WebKit/win/ChangeLog (158138 => 158139)


--- branches/safari-537.73-branch/Source/WebKit/win/ChangeLog	2013-10-28 22:13:09 UTC (rev 158138)
+++ branches/safari-537.73-branch/Source/WebKit/win/ChangeLog	2013-10-28 22:20:44 UTC (rev 158139)
@@ -1,5 +1,21 @@
 2013-10-28  Lucas Forschler  <[email protected]>
 
+        Merge r156416
+
+    2013-09-24  Roger Fong  <[email protected]>
+
+            [Windows] Overpanning occurs even when what is being panned isn't the main document.
+            https://bugs.webkit.org/show_bug.cgi?id=121885.
+            <rdar://problem/15072332>.
+
+            Reviewed by Brent Fulgham.
+
+            * WebView.cpp:
+            (WebView::gestureNotify):
+            (WebView::gesture):
+
+2013-10-28  Lucas Forschler  <[email protected]>
+
         Merge r156219
 
     2013-09-20  Roger Fong  <[email protected]>

Modified: branches/safari-537.73-branch/Source/WebKit/win/WebView.cpp (158138 => 158139)


--- branches/safari-537.73-branch/Source/WebKit/win/WebView.cpp	2013-10-28 22:13:09 UTC (rev 158138)
+++ branches/safari-537.73-branch/Source/WebKit/win/WebView.cpp	2013-10-28 22:20:44 UTC (rev 158139)
@@ -1604,6 +1604,10 @@
                 break;
             }
         }
+    } else {
+        // We've hit the main document but not any of the document's content
+        if (core(m_mainFrame)->view()->isScrollable())
+            canBeScrolled = true;
     }
 
     // We always allow two-fingered panning with inertia and a gutter (which limits movement to one
@@ -1680,14 +1684,14 @@
             return false;
         }
 
-        ScrollView* scrolledView = 0;
+        ScrollableArea* scrolledArea = 0;
 
         if (!m_gestureTargetNode || !m_gestureTargetNode->renderer()) {
             // We might directly hit the document without hitting any nodes
             coreFrame->view()->scrollBy(IntSize(-deltaX, -deltaY));
-            scrolledView = coreFrame->view();
+            scrolledArea = coreFrame->view();
         } else
-            m_gestureTargetNode->renderer()->enclosingLayer()->scrollByRecursively(IntSize(-deltaX, -deltaY), WebCore::RenderLayer::ScrollOffsetClamped, &scrolledView);
+            m_gestureTargetNode->renderer()->enclosingLayer()->scrollByRecursively(IntSize(-deltaX, -deltaY), WebCore::RenderLayer::ScrollOffsetClamped, &scrolledArea);
 
         if (!(UpdatePanningFeedbackPtr() && BeginPanningFeedbackPtr() && EndPanningFeedbackPtr())) {
             CloseGestureInfoHandlePtr()(gestureHandle);
@@ -1705,12 +1709,12 @@
             m_xOverpan = 0;
         }
 
-        if (!scrolledView) {
+        if (!scrolledArea) {
             CloseGestureInfoHandlePtr()(gestureHandle);
             return true;
         }
 
-        Scrollbar* vertScrollbar = scrolledView->verticalScrollbar();
+        Scrollbar* vertScrollbar = scrolledArea->verticalScrollbar();
 
         int ypan = 0;
         int xpan = 0;
@@ -1718,7 +1722,7 @@
         if (vertScrollbar && (!vertScrollbar->currentPos() || vertScrollbar->currentPos() >= vertScrollbar->maximum()))
             ypan = m_yOverpan;
 
-        Scrollbar* horiScrollbar = scrolledView->horizontalScrollbar();
+        Scrollbar* horiScrollbar = scrolledArea->horizontalScrollbar();
 
         if (horiScrollbar && (!horiScrollbar->currentPos() || horiScrollbar->currentPos() >= horiScrollbar->maximum()))
             xpan = m_xOverpan;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to