Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2289213002: Implement Middle Click Autoscroll on all platforms not just Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update a test Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/input/EventHandler.cpp
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
index b3d05d79c33807ff153a024ffc3580ff1cc56a87..bc8a2511ace99d0061e2acfde50c867b601112c3 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -436,8 +436,6 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const MouseEventWithHi
return selectionController().handleMouseReleaseEvent(event, m_dragStartPos) ? WebInputEventResult::HandledSystem : WebInputEventResult::NotHandled;
}
-#if OS(WIN)
-
void EventHandler::startPanScrolling(LayoutObject* layoutObject)
{
if (!layoutObject->isBox())
@@ -449,8 +447,6 @@ void EventHandler::startPanScrolling(LayoutObject* layoutObject)
invalidateClick();
}
-#endif // OS(WIN)
-
HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, HitTestRequest::HitTestRequestType hitType, const LayoutSize& padding)
{
TRACE_EVENT0("blink", "EventHandler::hitTestResultAtPoint");
@@ -831,18 +827,19 @@ WebInputEventResult EventHandler::handleMousePressEvent(const PlatformMouseEvent
return result;
}
-#if OS(WIN)
- // We store whether pan scrolling is in progress before calling stopAutoscroll()
- // because it will set m_autoscrollType to NoAutoscroll on return.
- bool isPanScrollInProgress = m_scrollManager.panScrollInProgress();
- m_scrollManager.stopAutoscroll();
- if (isPanScrollInProgress) {
- // We invalidate the click when exiting pan scrolling so that we don't inadvertently navigate
- // away from the current page (e.g. the click was on a hyperlink). See <rdar://problem/6095023>.
- invalidateClick();
- return WebInputEventResult::HandledSuppressed;
+ if (RuntimeEnabledFeatures::panScrollingEnabled()) {
+ // We store whether pan scrolling is in progress before calling stopAutoscroll()
+ // because it will set m_autoscrollType to NoAutoscroll on return.
+ bool isPanScrollInProgress = m_scrollManager.panScrollInProgress();
+ m_scrollManager.stopAutoscroll();
+ if (isPanScrollInProgress) {
+ // We invalidate the click when exiting pan scrolling so that we don't inadvertently navigate
+ // away from the current page (e.g. the click was on a hyperlink). See <rdar://problem/6095023>.
+ invalidateClick();
+ updatePointerTargetAndDispatchEvents(EventTypeNames::mousedown, mev.innerNode(), m_clickCount, mev.event());
sunyunjia 2016/09/01 01:50:31 I'm not sure the side effects of adding this line
Navid Zolghadr 2016/09/02 17:36:57 When pan is enabled and that pan circle is shown,
+ return WebInputEventResult::HandledSuppressed;
+ }
}
-#endif
m_clickCount = mouseEvent.clickCount();
m_clickNode = mev.innerNode()->isTextNode() ? FlatTreeTraversal::parent(*mev.innerNode()) : mev.innerNode();
@@ -1113,10 +1110,10 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve
else
gestureIndicator = wrapUnique(new UserGestureIndicator(DefinitelyProcessingUserGesture));
-#if OS(WIN)
- if (Page* page = m_frame->page())
- page->autoscrollController().handleMouseReleaseForPanScrolling(m_frame, mouseEvent);
-#endif
+ if (RuntimeEnabledFeatures::panScrollingEnabled()) {
+ if (Page* page = m_frame->page())
+ page->autoscrollController().handleMouseReleaseForPanScrolling(m_frame, mouseEvent);
+ }
m_mousePressed = false;
setLastKnownMousePosition(mouseEvent);

Powered by Google App Engine
This is Rietveld 408576698