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;