Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/input/GestureManager.h" | 5 #include "core/input/GestureManager.h" |
| 6 | 6 |
| 7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
| 8 #include "core/editing/SelectionController.h" | 8 #include "core/editing/SelectionController.h" |
| 9 #include "core/events/GestureEvent.h" | 9 #include "core/events/GestureEvent.h" |
| 10 #include "core/frame/FrameHost.h" | 10 #include "core/frame/FrameHost.h" |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 353 gestureEvent.position(), gestureEvent.globalPosition(), | 353 gestureEvent.position(), gestureEvent.globalPosition(), |
| 354 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, | 354 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, |
| 355 /* clickCount */ 0, static_cast<PlatformEvent::Modifiers>(modifiers), | 355 /* clickCount */ 0, static_cast<PlatformEvent::Modifiers>(modifiers), |
| 356 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), | 356 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), |
| 357 WebPointerProperties::PointerType::Mouse); | 357 WebPointerProperties::PointerType::Mouse); |
| 358 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | 358 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
| 359 targetedEvent.hitTestResult().innerNode(), EventTypeNames::mousemove, | 359 targetedEvent.hitTestResult().innerNode(), EventTypeNames::mousemove, |
| 360 fakeMouseMove); | 360 fakeMouseMove); |
| 361 } | 361 } |
| 362 | 362 |
| 363 PlatformEvent::EventType eventType = PlatformEvent::MousePressed; | |
| 364 if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) | |
| 365 eventType = PlatformEvent::MouseReleased; | |
| 366 PlatformMouseEvent mouseEvent( | 363 PlatformMouseEvent mouseEvent( |
| 367 targetedEvent.event().position(), targetedEvent.event().globalPosition(), | 364 targetedEvent.event().position(), targetedEvent.event().globalPosition(), |
| 368 WebPointerProperties::Button::NoButton, eventType, /* clickCount */ 0, | 365 WebPointerProperties::Button::NoButton, PlatformEvent::MousePressed, |
| 369 static_cast<PlatformEvent::Modifiers>(modifiers), | 366 /* clickCount */ 1, |
| 367 static_cast<PlatformEvent::Modifiers>( | |
| 368 modifiers | PlatformEvent::Modifiers::RightButtonDown), | |
| 370 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), | 369 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), |
| 371 WebPointerProperties::PointerType::Mouse); | 370 WebPointerProperties::PointerType::Mouse); |
| 372 | 371 |
| 373 if (!m_suppressMouseEventsFromGestures && m_frame->view()) { | 372 if (!m_suppressMouseEventsFromGestures && m_frame->view()) { |
| 374 HitTestRequest request(HitTestRequest::Active); | 373 HitTestRequest request(HitTestRequest::Active); |
| 375 LayoutPoint documentPoint = | 374 LayoutPoint documentPoint = |
| 376 m_frame->view()->rootFrameToContents(targetedEvent.event().position()); | 375 m_frame->view()->rootFrameToContents(targetedEvent.event().position()); |
| 377 MouseEventWithHitTestResults mev = | 376 MouseEventWithHitTestResults mev = |
| 378 m_frame->document()->performMouseEventHitTest(request, documentPoint, | 377 m_frame->document()->performMouseEventHitTest(request, documentPoint, |
| 379 mouseEvent); | 378 mouseEvent); |
| 380 | 379 |
| 381 WebInputEventResult eventResult = | 380 WebInputEventResult eventResult = |
| 382 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | 381 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
| 383 mev.innerNode(), EventTypeNames::mousedown, mouseEvent); | 382 mev.innerNode(), EventTypeNames::mousedown, mouseEvent); |
| 384 | 383 |
| 385 if (eventResult == WebInputEventResult::NotHandled) | 384 if (eventResult == WebInputEventResult::NotHandled) |
| 386 eventResult = m_mouseEventManager->handleMouseFocus( | 385 eventResult = m_mouseEventManager->handleMouseFocus( |
| 387 mev.hitTestResult(), | 386 mev.hitTestResult(), |
| 388 InputDeviceCapabilities::firesTouchEventsSourceCapabilities()); | 387 InputDeviceCapabilities::firesTouchEventsSourceCapabilities()); |
| 389 | 388 |
| 390 if (eventResult == WebInputEventResult::NotHandled) | 389 if (eventResult == WebInputEventResult::NotHandled) |
| 391 m_mouseEventManager->handleMousePressEvent(mev); | 390 m_mouseEventManager->handleMousePressEvent(mev); |
| 391 | |
| 392 if (m_frame->settings() && | |
| 393 m_frame->settings()->showContextMenuOnMouseUp()) { | |
| 394 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | |
| 395 mev.innerNode(), EventTypeNames::mouseup, mouseEvent); | |
| 396 m_mouseEventManager->setClickNode(mev.innerNode()); | |
| 397 m_mouseEventManager->setClickCount(1); | |
| 398 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); | |
| 399 return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); | |
| 400 } | |
| 401 WebInputEventResult result = | |
| 402 m_frame->eventHandler().sendContextMenuEvent(mouseEvent); | |
| 403 if (result != WebInputEventResult::NotHandled) { | |
| 404 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | |
| 405 mev.innerNode(), EventTypeNames::mouseup, mouseEvent); | |
| 406 m_mouseEventManager->setClickNode(mev.innerNode()); | |
| 407 m_mouseEventManager->setClickCount(1); | |
| 408 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); | |
|
Navid Zolghadr
2016/10/25 20:12:37
Do you think these few lines are worth adding a ne
| |
| 409 } | |
| 410 return result; | |
| 392 } | 411 } |
| 393 | |
| 394 return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); | 412 return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); |
| 395 } | 413 } |
| 396 | 414 |
| 397 WebInputEventResult GestureManager::handleGestureShowPress() { | 415 WebInputEventResult GestureManager::handleGestureShowPress() { |
| 398 m_lastShowPressTimestamp = WTF::monotonicallyIncreasingTime(); | 416 m_lastShowPressTimestamp = WTF::monotonicallyIncreasingTime(); |
| 399 | 417 |
| 400 FrameView* view = m_frame->view(); | 418 FrameView* view = m_frame->view(); |
| 401 if (!view) | 419 if (!view) |
| 402 return WebInputEventResult::NotHandled; | 420 return WebInputEventResult::NotHandled; |
| 403 if (ScrollAnimatorBase* scrollAnimator = view->existingScrollAnimator()) | 421 if (ScrollAnimatorBase* scrollAnimator = view->existingScrollAnimator()) |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 418 return nullptr; | 436 return nullptr; |
| 419 | 437 |
| 420 return &m_frame->page()->frameHost(); | 438 return &m_frame->page()->frameHost(); |
| 421 } | 439 } |
| 422 | 440 |
| 423 double GestureManager::getLastShowPressTimestamp() const { | 441 double GestureManager::getLastShowPressTimestamp() const { |
| 424 return m_lastShowPressTimestamp; | 442 return m_lastShowPressTimestamp; |
| 425 } | 443 } |
| 426 | 444 |
| 427 } // namespace blink | 445 } // namespace blink |
| OLD | NEW |