Title: [98108] trunk
Revision
98108
Author
[email protected]
Date
2011-10-21 10:28:07 -0700 (Fri, 21 Oct 2011)

Log Message

[Gtk] mousemove event always has metaKey == true
https://bugs.webkit.org/show_bug.cgi?id=35299

Patch by Devdatta Deshpande <[email protected]> on 2011-10-21
Reviewed by Martin Robinson.

Source/WebCore:

GDK_MOD2_MASK doesn't always mean meta so we can't use it to identify
the meta key state. Use GDK_META_MASK instead.

Test: platform/gtk/fast/events/event-sender-metakey.html

* platform/gtk/PlatformMouseEventGtk.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):

Tools:

* DumpRenderTree/gtk/EventSender.cpp:
(gdkModifierFromJSValue): GDK_META_MASK is used to represent metaKey for platform GTK mouse and
keyboard events. So making it in sync with WebCore files.
(mouseMoveToCallback): Sending modifier keys state for mouse move event.

LayoutTests:

For testing state of metaKey for mouse and keyboard events generated
using evnetSender object.

* platform/gtk/fast/events/event-sender-metakey-expected.txt: Added.
* platform/gtk/fast/events/event-sender-metakey.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (98107 => 98108)


--- trunk/LayoutTests/ChangeLog	2011-10-21 17:06:00 UTC (rev 98107)
+++ trunk/LayoutTests/ChangeLog	2011-10-21 17:28:07 UTC (rev 98108)
@@ -1,3 +1,16 @@
+2011-10-21  Devdatta Deshpande  <[email protected]>
+
+        [Gtk] mousemove event always has metaKey == true
+        https://bugs.webkit.org/show_bug.cgi?id=35299
+
+        Reviewed by Martin Robinson.
+
+        For testing state of metaKey for mouse and keyboard events generated
+        using evnetSender object.
+
+        * platform/gtk/fast/events/event-sender-metakey-expected.txt: Added.
+        * platform/gtk/fast/events/event-sender-metakey.html: Added.
+
 2011-10-21  Cary Clark  <[email protected]>
 
         Unreviewed gardening: first chunk of rebaselines for Chromium-Skia

Added: trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey-expected.txt (0 => 98108)


--- trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey-expected.txt	2011-10-21 17:28:07 UTC (rev 98108)
@@ -0,0 +1,2 @@
+PASS
+

Added: trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey.html (0 => 98108)


--- trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey.html	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/fast/events/event-sender-metakey.html	2011-10-21 17:28:07 UTC (rev 98108)
@@ -0,0 +1,42 @@
+<html>
+<body>
+<div id="result"></div>
+<input id="test" type="button" value="">
+<script>
+    if (window.layoutTestController)
+        layoutTestController.dumpAsText();
+
+    var metaKey = false;
+    var failed = false;
+    function handleMetakey(e) {
+        if (true == failed)
+            return;
+        if (e.metaKey != metaKey)
+            failed = true;
+    }
+    var test = document.getElementById("test");
+    test.addEventListener('mousemove', handleMetakey, false);
+    test.addEventListener('mousedown', handleMetakey, false);
+    test.addEventListener('mouseup', handleMetakey, false);
+    test.addEventListener('keydown', handleMetakey, false);
+
+    test.focus();
+
+
+    // Events with metakey as false
+    eventSender.mouseMoveTo(test.offsetLeft, test.offsetTop);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    eventSender.keyDown('a');
+
+    // Events with metakey as true
+    metaKey = true;
+    eventSender.mouseMoveTo(test.offsetLeft, test.offsetTop, ["metaKey"]);
+    eventSender.mouseDown(1, ["metaKey"]);
+    eventSender.mouseUp(1, ["metaKey"]);
+    eventSender.keyDown('a', ["metaKey"]);
+
+    var resultDiv = document.getElementById("result");
+    resultDiv.innerHTML = failed ? "FAIL" : "PASS";
+</script>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (98107 => 98108)


--- trunk/Source/WebCore/ChangeLog	2011-10-21 17:06:00 UTC (rev 98107)
+++ trunk/Source/WebCore/ChangeLog	2011-10-21 17:28:07 UTC (rev 98108)
@@ -1,3 +1,18 @@
+2011-10-21  Devdatta Deshpande  <[email protected]>
+
+        [Gtk] mousemove event always has metaKey == true
+        https://bugs.webkit.org/show_bug.cgi?id=35299
+
+        Reviewed by Martin Robinson.
+
+        GDK_MOD2_MASK doesn't always mean meta so we can't use it to identify
+        the meta key state. Use GDK_META_MASK instead.
+
+        Test: platform/gtk/fast/events/event-sender-metakey.html
+
+        * platform/gtk/PlatformMouseEventGtk.cpp:
+        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
+
 2011-10-21  Andreas Kling  <[email protected]>
 
         Style and Link elements' sheet() should return CSSStyleSheet.

Modified: trunk/Source/WebCore/platform/gtk/PlatformMouseEventGtk.cpp (98107 => 98108)


--- trunk/Source/WebCore/platform/gtk/PlatformMouseEventGtk.cpp	2011-10-21 17:06:00 UTC (rev 98107)
+++ trunk/Source/WebCore/platform/gtk/PlatformMouseEventGtk.cpp	2011-10-21 17:28:07 UTC (rev 98108)
@@ -83,7 +83,7 @@
     m_shiftKey = motion->state & GDK_SHIFT_MASK;
     m_ctrlKey = motion->state & GDK_CONTROL_MASK;
     m_altKey = motion->state & GDK_MOD1_MASK;
-    m_metaKey = motion->state & GDK_MOD2_MASK;
+    m_metaKey = motion->state & GDK_META_MASK;
 
     switch (motion->type) {
     case GDK_MOTION_NOTIFY:

Modified: trunk/Tools/ChangeLog (98107 => 98108)


--- trunk/Tools/ChangeLog	2011-10-21 17:06:00 UTC (rev 98107)
+++ trunk/Tools/ChangeLog	2011-10-21 17:28:07 UTC (rev 98108)
@@ -1,3 +1,15 @@
+2011-10-21  Devdatta Deshpande  <[email protected]>
+
+        [Gtk] mousemove event always has metaKey == true
+        https://bugs.webkit.org/show_bug.cgi?id=35299
+
+        Reviewed by Martin Robinson.
+
+        * DumpRenderTree/gtk/EventSender.cpp:
+        (gdkModifierFromJSValue): GDK_META_MASK is used to represent metaKey for platform GTK mouse and
+        keyboard events. So making it in sync with WebCore files.
+        (mouseMoveToCallback): Sending modifier keys state for mouse move event.
+
 2011-10-21  Carlos Garcia Campos  <[email protected]>
 
         watchlist: Add a new entry for WebKit2 GTK+ public API

Modified: trunk/Tools/DumpRenderTree/gtk/EventSender.cpp (98107 => 98108)


--- trunk/Tools/DumpRenderTree/gtk/EventSender.cpp	2011-10-21 17:06:00 UTC (rev 98107)
+++ trunk/Tools/DumpRenderTree/gtk/EventSender.cpp	2011-10-21 17:28:07 UTC (rev 98108)
@@ -276,10 +276,10 @@
     else if (JSStringIsEqualToUTF8CString(string, "altKey"))
         gdkModifier = GDK_MOD1_MASK;
     
-    // Currently the metaKey as defined in WebCore/platform/gtk/MouseEventGtk.cpp
-    // is GDK_MOD2_MASK. This code must be kept in sync with that file.
+    // Currently the metaKey as defined in WebCore/platform/gtk/PlatformMouseEventGtk.cpp
+    // is GDK_META_MASK. This code must be kept in sync with that file.
     else if (JSStringIsEqualToUTF8CString(string, "metaKey"))
-        gdkModifier = GDK_MOD2_MASK;
+        gdkModifier = GDK_META_MASK;
     
     JSStringRelease(string);
     return gdkModifier;
@@ -395,7 +395,9 @@
     event->motion.window = gtk_widget_get_window(GTK_WIDGET(view));
     g_object_ref(event->motion.window);
     event->button.device = getDefaultGDKPointerDevice(event->motion.window);
-    event->motion.state = getStateFlags();
+
+    guint modifiers = argumentCount >= 3 ? gdkModifersFromJSValue(context, arguments[2]) : 0;
+    event->motion.state = modifiers | getStateFlags();
     event->motion.axes = 0;
 
     int xRoot, yRoot;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to