Index: third_party/WebKit/Source/core/input/GestureManager.cpp |
diff --git a/third_party/WebKit/Source/core/input/GestureManager.cpp b/third_party/WebKit/Source/core/input/GestureManager.cpp |
index 4171e89cb9197b23cbf1b6600eb877ce0052d7e0..6103787f9aa99369499208e06b72d5cb72d38722 100644 |
--- a/third_party/WebKit/Source/core/input/GestureManager.cpp |
+++ b/third_party/WebKit/Source/core/input/GestureManager.cpp |
@@ -360,13 +360,12 @@ WebInputEventResult GestureManager::sendContextMenuEventForGesture( |
fakeMouseMove); |
} |
- PlatformEvent::EventType eventType = PlatformEvent::MousePressed; |
- if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) |
- eventType = PlatformEvent::MouseReleased; |
PlatformMouseEvent mouseEvent( |
targetedEvent.event().position(), targetedEvent.event().globalPosition(), |
- WebPointerProperties::Button::NoButton, eventType, /* clickCount */ 0, |
- static_cast<PlatformEvent::Modifiers>(modifiers), |
+ WebPointerProperties::Button::NoButton, PlatformEvent::MousePressed, |
+ /* clickCount */ 1, |
+ static_cast<PlatformEvent::Modifiers>( |
+ modifiers | PlatformEvent::Modifiers::RightButtonDown), |
PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), |
WebPointerProperties::PointerType::Mouse); |
@@ -389,8 +388,27 @@ WebInputEventResult GestureManager::sendContextMenuEventForGesture( |
if (eventResult == WebInputEventResult::NotHandled) |
m_mouseEventManager->handleMousePressEvent(mev); |
- } |
+ if (m_frame->settings() && |
+ m_frame->settings()->showContextMenuOnMouseUp()) { |
+ m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
+ mev.innerNode(), EventTypeNames::mouseup, mouseEvent); |
+ m_mouseEventManager->setClickNode(mev.innerNode()); |
+ m_mouseEventManager->setClickCount(1); |
+ m_mouseEventManager->dispatchMouseClickIfNeeded(mev); |
+ return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); |
+ } |
+ WebInputEventResult result = |
+ m_frame->eventHandler().sendContextMenuEvent(mouseEvent); |
+ if (result != WebInputEventResult::NotHandled) { |
+ m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
+ mev.innerNode(), EventTypeNames::mouseup, mouseEvent); |
+ m_mouseEventManager->setClickNode(mev.innerNode()); |
+ m_mouseEventManager->setClickCount(1); |
+ m_mouseEventManager->dispatchMouseClickIfNeeded(mev); |
Navid Zolghadr
2016/10/25 20:12:37
Do you think these few lines are worth adding a ne
|
+ } |
+ return result; |
+ } |
return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); |
} |