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;