Index: third_party/WebKit/Source/core/page/AutoscrollController.cpp |
diff --git a/third_party/WebKit/Source/core/page/AutoscrollController.cpp b/third_party/WebKit/Source/core/page/AutoscrollController.cpp |
index f398d1b30f1e7b82a3826dc4232167f82e497b93..d5cc4f32dc9ab4a1817d34e60d05db5ec5c2022a 100644 |
--- a/third_party/WebKit/Source/core/page/AutoscrollController.cpp |
+++ b/third_party/WebKit/Source/core/page/AutoscrollController.cpp |
@@ -74,7 +74,7 @@ bool AutoscrollController::autoscrollInProgress(const LayoutBox* layoutObject) c |
void AutoscrollController::startAutoscrollForSelection(LayoutObject* layoutObject) |
{ |
- // We don't want to trigger the autoscroll or the panScroll if it's already active |
+ // We don't want to trigger the autoscroll or the middleClickAutoscroll if it's already active |
if (m_autoscrollType != NoAutoscroll) |
return; |
LayoutBox* scrollable = LayoutBox::findAutoscrollable(layoutObject); |
@@ -101,14 +101,11 @@ void AutoscrollController::stopAutoscroll() |
if (!scrollable) |
return; |
-#if OS(WIN) |
- if (panScrollInProgress()) { |
+ if (RuntimeEnabledFeatures::middleClickAutoscrollEnabled() && middleClickAutoscrollInProgress()) { |
if (FrameView* view = scrollable->frame()->view()) { |
view->setCursor(pointerCursor()); |
} |
} |
-#endif |
- |
m_autoscrollType = NoAutoscroll; |
} |
@@ -130,12 +127,12 @@ void AutoscrollController::updateAutoscrollLayoutObject() |
LayoutObject* layoutObject = m_autoscrollLayoutObject; |
-#if OS(WIN) |
- HitTestResult hitTest = layoutObject->frame()->eventHandler().hitTestResultAtPoint(m_panScrollStartPos, HitTestRequest::ReadOnly | HitTestRequest::Active); |
+ if (RuntimeEnabledFeatures::middleClickAutoscrollEnabled()) { |
+ HitTestResult hitTest = layoutObject->frame()->eventHandler().hitTestResultAtPoint(m_middleClickAutoscrollStartPos, HitTestRequest::ReadOnly | HitTestRequest::Active); |
- if (Node* nodeAtPoint = hitTest.innerNode()) |
- layoutObject = nodeAtPoint->layoutObject(); |
-#endif |
+ if (Node* nodeAtPoint = hitTest.innerNode()) |
+ layoutObject = nodeAtPoint->layoutObject(); |
+ } |
while (layoutObject && !(layoutObject->isBox() && toLayoutBox(layoutObject)->canAutoscroll())) |
layoutObject = layoutObject->parent(); |
@@ -187,17 +184,17 @@ void AutoscrollController::updateDragAndDrop(Node* dropTargetNode, const IntPoin |
} |
} |
-#if OS(WIN) |
-void AutoscrollController::handleMouseReleaseForPanScrolling(LocalFrame* frame, const PlatformMouseEvent& mouseEvent) |
+void AutoscrollController::handleMouseReleaseForMiddleClickAutoscroll(LocalFrame* frame, const PlatformMouseEvent& mouseEvent) |
{ |
+ DCHECK(RuntimeEnabledFeatures::middleClickAutoscrollEnabled()); |
if (!frame->isMainFrame()) |
return; |
switch (m_autoscrollType) { |
- case AutoscrollForPan: |
+ case AutoscrollForMiddleClick: |
if (mouseEvent.pointerProperties().button == WebPointerProperties::Button::Middle) |
- m_autoscrollType = AutoscrollForPanCanStop; |
+ m_autoscrollType = AutoscrollForMiddleClickCanStop; |
break; |
- case AutoscrollForPanCanStop: |
+ case AutoscrollForMiddleClickCanStop: |
stopAutoscroll(); |
break; |
case AutoscrollForDragAndDrop: |
@@ -208,30 +205,25 @@ void AutoscrollController::handleMouseReleaseForPanScrolling(LocalFrame* frame, |
} |
} |
-bool AutoscrollController::panScrollInProgress() const |
+bool AutoscrollController::middleClickAutoscrollInProgress() const |
{ |
- return m_autoscrollType == AutoscrollForPanCanStop || m_autoscrollType == AutoscrollForPan; |
+ return m_autoscrollType == AutoscrollForMiddleClickCanStop || m_autoscrollType == AutoscrollForMiddleClick; |
} |
-void AutoscrollController::startPanScrolling(LayoutBox* scrollable, const IntPoint& lastKnownMousePosition) |
+void AutoscrollController::startMiddleClickAutoscroll(LayoutBox* scrollable, const IntPoint& lastKnownMousePosition) |
{ |
- // We don't want to trigger the autoscroll or the panScroll if it's already active |
+ DCHECK(RuntimeEnabledFeatures::middleClickAutoscrollEnabled()); |
+ // We don't want to trigger the autoscroll or the middleClickAutoscroll if it's already active |
if (m_autoscrollType != NoAutoscroll) |
return; |
- m_autoscrollType = AutoscrollForPan; |
+ m_autoscrollType = AutoscrollForMiddleClick; |
m_autoscrollLayoutObject = scrollable; |
- m_panScrollStartPos = lastKnownMousePosition; |
+ m_middleClickAutoscrollStartPos = lastKnownMousePosition; |
- UseCounter::count(m_page->mainFrame(), UseCounter::PanScrollingStart); |
+ UseCounter::count(m_page->mainFrame(), UseCounter::MiddleClickAutoscrollStart); |
startAutoscroll(); |
} |
-#else |
-bool AutoscrollController::panScrollInProgress() const |
-{ |
- return false; |
-} |
-#endif |
void AutoscrollController::animate(double) |
{ |
@@ -256,18 +248,17 @@ void AutoscrollController::animate(double) |
break; |
case NoAutoscroll: |
break; |
-#if OS(WIN) |
- case AutoscrollForPanCanStop: |
- case AutoscrollForPan: |
- if (!panScrollInProgress()) { |
+ case AutoscrollForMiddleClickCanStop: |
+ case AutoscrollForMiddleClick: |
+ DCHECK(RuntimeEnabledFeatures::middleClickAutoscrollEnabled()); |
+ if (!middleClickAutoscrollInProgress()) { |
stopAutoscroll(); |
return; |
} |
if (FrameView* view = m_autoscrollLayoutObject->frame()->view()) |
- updatePanScrollState(view, eventHandler.lastKnownMousePosition()); |
- m_autoscrollLayoutObject->panScroll(m_panScrollStartPos); |
+ updateMiddleClickAutoscrollState(view, eventHandler.lastKnownMousePosition()); |
+ m_autoscrollLayoutObject->middleClickAutoscroll(m_middleClickAutoscrollStartPos); |
break; |
-#endif |
} |
if (m_autoscrollType != NoAutoscroll && m_autoscrollLayoutObject) |
m_page->chromeClient().scheduleAnimation(m_autoscrollLayoutObject->frame()->view()); |
@@ -278,18 +269,18 @@ void AutoscrollController::startAutoscroll() |
m_page->chromeClient().scheduleAnimation(m_autoscrollLayoutObject->frame()->view()); |
} |
-#if OS(WIN) |
-void AutoscrollController::updatePanScrollState(FrameView* view, const IntPoint& lastKnownMousePosition) |
+void AutoscrollController::updateMiddleClickAutoscrollState(FrameView* view, const IntPoint& lastKnownMousePosition) |
{ |
+ DCHECK(RuntimeEnabledFeatures::middleClickAutoscrollEnabled()); |
// At the original click location we draw a 4 arrowed icon. Over this icon there won't be any scroll |
// So we don't want to change the cursor over this area |
- bool east = m_panScrollStartPos.x() < (lastKnownMousePosition.x() - noPanScrollRadius); |
- bool west = m_panScrollStartPos.x() > (lastKnownMousePosition.x() + noPanScrollRadius); |
- bool north = m_panScrollStartPos.y() > (lastKnownMousePosition.y() + noPanScrollRadius); |
- bool south = m_panScrollStartPos.y() < (lastKnownMousePosition.y() - noPanScrollRadius); |
+ bool east = m_middleClickAutoscrollStartPos.x() < (lastKnownMousePosition.x() - noMiddleClickAutoscrollRadius); |
+ bool west = m_middleClickAutoscrollStartPos.x() > (lastKnownMousePosition.x() + noMiddleClickAutoscrollRadius); |
+ bool north = m_middleClickAutoscrollStartPos.y() > (lastKnownMousePosition.y() + noMiddleClickAutoscrollRadius); |
+ bool south = m_middleClickAutoscrollStartPos.y() < (lastKnownMousePosition.y() - noMiddleClickAutoscrollRadius); |
- if (m_autoscrollType == AutoscrollForPan && (east || west || north || south)) |
- m_autoscrollType = AutoscrollForPanCanStop; |
+ if (m_autoscrollType == AutoscrollForMiddleClick && (east || west || north || south)) |
+ m_autoscrollType = AutoscrollForMiddleClickCanStop; |
if (north) { |
if (east) |
@@ -313,6 +304,5 @@ void AutoscrollController::updatePanScrollState(FrameView* view, const IntPoint& |
view->setCursor(middlePanningCursor()); |
} |
} |
-#endif |
} // namespace blink |