[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

commit-queue at webkit.org commit-queue at webkit.org
Sun Feb 20 23:45:56 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit ada816be4b62699119762cea80153094a423910c
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 25 01:36:51 2011 +0000

    2011-01-24  Peter Kasting  <pkasting at google.com>
    
            Reviewed by Darin Adler.
    
            Roll back r67261 ("Don't fire onclick on middle clicks") due to
            regressions.
            https://bugs.webkit.org/show_bug.cgi?id=46733
    
            * fast/events/mouse-click-events-expected.txt:
            * fast/events/script-tests/mouse-click-events.js:
    2011-01-24  Peter Kasting  <pkasting at google.com>
    
            Reviewed by Darin Adler.
    
            Roll back r67261 ("Don't fire onclick on middle clicks") due to
            regressions.
            https://bugs.webkit.org/show_bug.cgi?id=46733
    
            * html/HTMLAnchorElement.cpp:
            (WebCore::isLinkClick):
            * html/HTMLInputElement.cpp:
            (WebCore::HTMLInputElement::preDispatchEventHandler):
            (WebCore::HTMLInputElement::postDispatchEventHandler):
            (WebCore::HTMLInputElement::defaultEventHandler):
            * page/EventHandler.cpp:
            (WebCore::EventHandler::handleMouseDoubleClickEvent):
            (WebCore::EventHandler::handleMouseReleaseEvent):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76557 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 99ee6f2..f991949 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2011-01-24  Peter Kasting  <pkasting at google.com>
+
+        Reviewed by Darin Adler.
+
+        Roll back r67261 ("Don't fire onclick on middle clicks") due to
+        regressions.
+        https://bugs.webkit.org/show_bug.cgi?id=46733
+
+        * fast/events/mouse-click-events-expected.txt:
+        * fast/events/script-tests/mouse-click-events.js:
+
 2011-01-24  Xiaomei Ji  <xji at chromium.org>
 
         Unreviewed.
diff --git a/LayoutTests/fast/events/mouse-click-events-expected.txt b/LayoutTests/fast/events/mouse-click-events-expected.txt
index 6aea661..a62adae 100644
--- a/LayoutTests/fast/events/mouse-click-events-expected.txt
+++ b/LayoutTests/fast/events/mouse-click-events-expected.txt
@@ -6,11 +6,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 Left Mouse Button
 PASS eventLog is "mousedown(0) mouseup(0) click(0) mousedown(0) mouseup(0) click(0) dblclick(0) "
 Middle Mouse Button
-PASS eventLog is "mousedown(1) mouseup(1) mousedown(1) mouseup(1) "
+PASS eventLog is "mousedown(1) mouseup(1) click(1) mousedown(1) mouseup(1) click(1) dblclick(1) "
 Right Mouse Button
 PASS eventLog is "mousedown(2) mouseup(2) mousedown(2) mouseup(2) "
 4th Mouse Button
-PASS eventLog is "mousedown(1) mouseup(1) mousedown(1) mouseup(1) "
+PASS eventLog is "mousedown(1) mouseup(1) click(1) mousedown(1) mouseup(1) click(1) dblclick(1) "
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/events/script-tests/mouse-click-events.js b/LayoutTests/fast/events/script-tests/mouse-click-events.js
index f6d59c7..72a341b 100644
--- a/LayoutTests/fast/events/script-tests/mouse-click-events.js
+++ b/LayoutTests/fast/events/script-tests/mouse-click-events.js
@@ -49,9 +49,9 @@ function testEvents(description, button, expectedString) {
 
 if (window.eventSender) {
     testEvents("Left Mouse Button", 0, "mousedown(0) mouseup(0) click(0) mousedown(0) mouseup(0) click(0) dblclick(0) ");
-    testEvents("Middle Mouse Button", 1, "mousedown(1) mouseup(1) mousedown(1) mouseup(1) ");
+    testEvents("Middle Mouse Button", 1, "mousedown(1) mouseup(1) click(1) mousedown(1) mouseup(1) click(1) dblclick(1) ");
     testEvents("Right Mouse Button", 2, "mousedown(2) mouseup(2) mousedown(2) mouseup(2) ");
-    testEvents("4th Mouse Button", 3, "mousedown(1) mouseup(1) mousedown(1) mouseup(1) ");
+    testEvents("4th Mouse Button", 3, "mousedown(1) mouseup(1) click(1) mousedown(1) mouseup(1) click(1) dblclick(1) ");
 }
 
 var successfullyParsed = true;
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 2a1704c..d16f7f4 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-24  Peter Kasting  <pkasting at google.com>
+
+        Reviewed by Darin Adler.
+
+        Roll back r67261 ("Don't fire onclick on middle clicks") due to
+        regressions.
+        https://bugs.webkit.org/show_bug.cgi?id=46733
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::isLinkClick):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::preDispatchEventHandler):
+        (WebCore::HTMLInputElement::postDispatchEventHandler):
+        (WebCore::HTMLInputElement::defaultEventHandler):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::handleMouseDoubleClickEvent):
+        (WebCore::EventHandler::handleMouseReleaseEvent):
+
 2011-01-24  Martin Robinson  <mrobinson at igalia.com>
 
         Reviewed by Eric Seidel.
diff --git a/Source/WebCore/html/HTMLAnchorElement.cpp b/Source/WebCore/html/HTMLAnchorElement.cpp
index dcdde28..deeade4 100644
--- a/Source/WebCore/html/HTMLAnchorElement.cpp
+++ b/Source/WebCore/html/HTMLAnchorElement.cpp
@@ -541,7 +541,7 @@ bool isMiddleMouseButtonEvent(Event* event)
 
 bool isLinkClick(Event* event)
 {
-    return event->type() == eventNames().clickEvent || (event->type() == eventNames().mouseupEvent && isMiddleMouseButtonEvent(event));
+    return event->type() == eventNames().clickEvent && (!event->isMouseEvent() || static_cast<MouseEvent*>(event)->button() != RightButton);
 }
 
 void handleLinkClick(Event* event, Document* document, const String& url, const String& target, bool hideReferrer)
diff --git a/Source/WebCore/html/HTMLInputElement.cpp b/Source/WebCore/html/HTMLInputElement.cpp
index 673add5..ac64e96 100644
--- a/Source/WebCore/html/HTMLInputElement.cpp
+++ b/Source/WebCore/html/HTMLInputElement.cpp
@@ -45,6 +45,7 @@
 #include "KeyboardEvent.h"
 #include "LocalizedStrings.h"
 #include "MouseEvent.h"
+#include "PlatformMouseEvent.h"
 #include "RenderTextControlSingleLine.h"
 #include "RenderTheme.h"
 #include "RuntimeEnabledFeatures.h"
@@ -942,6 +943,8 @@ void* HTMLInputElement::preDispatchEventHandler(Event* event)
 {
     if (event->type() != eventNames().clickEvent)
         return 0;
+    if (!event->isMouseEvent() || static_cast<MouseEvent*>(event)->button() != LeftButton)
+        return 0;
     // FIXME: Check whether there are any cases where this actually ends up leaking.
     return m_inputType->willDispatchClick().leakPtr();
 }
@@ -949,8 +952,6 @@ void* HTMLInputElement::preDispatchEventHandler(Event* event)
 void HTMLInputElement::postDispatchEventHandler(Event* event, void* dataFromPreDispatch)
 {
     OwnPtr<ClickHandlingState> state = adoptPtr(static_cast<ClickHandlingState*>(dataFromPreDispatch));
-    if (event->type() != eventNames().clickEvent)
-        return;
     if (!state)
         return;
     m_inputType->didDispatchClick(event, *state);
@@ -958,7 +959,7 @@ void HTMLInputElement::postDispatchEventHandler(Event* event, void* dataFromPreD
 
 void HTMLInputElement::defaultEventHandler(Event* evt)
 {
-    if (evt->isMouseEvent() && evt->type() == eventNames().clickEvent) {
+    if (evt->isMouseEvent() && evt->type() == eventNames().clickEvent && static_cast<MouseEvent*>(evt)->button() == LeftButton) {
         m_inputType->handleClickEvent(static_cast<MouseEvent*>(evt));
         if (evt->defaultHandled())
             return;
diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp
index 54c87e0..8cc8626 100644
--- a/Source/WebCore/page/EventHandler.cpp
+++ b/Source/WebCore/page/EventHandler.cpp
@@ -1422,7 +1422,7 @@ bool EventHandler::handleMouseDoubleClickEvent(const PlatformMouseEvent& mouseEv
     m_clickCount = mouseEvent.clickCount();
     bool swallowMouseUpEvent = dispatchMouseEvent(eventNames().mouseupEvent, mev.targetNode(), true, m_clickCount, mouseEvent, false);
 
-    bool swallowClickEvent = mouseEvent.button() == LeftButton && mev.targetNode() == m_clickNode && dispatchMouseEvent(eventNames().clickEvent, mev.targetNode(), true, m_clickCount, mouseEvent, true);
+    bool swallowClickEvent = mouseEvent.button() != RightButton && mev.targetNode() == m_clickNode && dispatchMouseEvent(eventNames().clickEvent, mev.targetNode(), true, m_clickCount, mouseEvent, true);
 
     if (m_lastScrollbarUnderMouse)
         swallowMouseUpEvent = m_lastScrollbarUnderMouse->mouseUp();
@@ -1613,7 +1613,7 @@ bool EventHandler::handleMouseReleaseEvent(const PlatformMouseEvent& mouseEvent)
 
     bool swallowMouseUpEvent = dispatchMouseEvent(eventNames().mouseupEvent, mev.targetNode(), true, m_clickCount, mouseEvent, false);
 
-    bool swallowClickEvent = m_clickCount > 0 && mouseEvent.button() == LeftButton && mev.targetNode() == m_clickNode && dispatchMouseEvent(eventNames().clickEvent, mev.targetNode(), true, m_clickCount, mouseEvent, true);
+    bool swallowClickEvent = m_clickCount > 0 && mouseEvent.button() != RightButton && mev.targetNode() == m_clickNode && dispatchMouseEvent(eventNames().clickEvent, mev.targetNode(), true, m_clickCount, mouseEvent, true);
 
     if (m_resizeLayer) {
         m_resizeLayer->setInResizeMode(false);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list