Index: Source/core/page/EventHandler.cpp |
diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp |
index 0fbfe2a174f6aa2e60eb249e23f2d635526e7207..43f967b8a90faaa963d9291e2c1094b23a92ec9a 100644 |
--- a/Source/core/page/EventHandler.cpp |
+++ b/Source/core/page/EventHandler.cpp |
@@ -1682,8 +1682,11 @@ bool EventHandler::handleMouseReleaseEvent(const PlatformMouseEvent& mouseEvent) |
if (mouseEvent.button() == LeftButton && mouseEvent.modifiers() & PlatformEvent::CtrlKey) |
contextMenuEvent = true; |
#endif |
- |
- bool swallowClickEvent = m_clickCount > 0 && !contextMenuEvent && mouseIsReleasedOnPressedElement(mev.targetNode(), m_clickNode.get()) && !dispatchMouseEvent(EventTypeNames::click, mev.targetNode(), true, m_clickCount, mouseEvent, true); |
+ bool swallowClickEvent = false; |
+ if (m_clickCount > 0 && !contextMenuEvent && mouseEvent.button() != MiddleButton && mouseIsReleasedOnPressedElement(mev.targetNode(), m_clickNode.get())) { |
+ // Turn the Mouse Button Released event into a click event since all requirements are fulfilled. |
+ swallowClickEvent = !dispatchMouseEvent(EventTypeNames::click, mev.targetNode(), true, m_clickCount, mouseEvent, true); |
+ } |
if (m_resizeLayer) { |
m_resizeLayer->setInResizeMode(false); |