[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

eric at webkit.org eric at webkit.org
Thu Oct 29 20:49:41 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 308ee2567205be4ed53b0f53203af0841b3aa69c
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 21 18:55:50 2009 +0000

    2009-10-21  Alejandro G. Castro  <alex at igalia.com>
    
            Reviewed by Xan Lopez.
    
            [GTK] Initialize the events completly before emitting them.
            https://bugs.webkit.org/show_bug.cgi?id=30633
    
            * WebKitTools/DumpRenderTree/gtk/EventSender.cpp:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49912 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 77fdd5d..507efc0 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,12 @@
+2009-10-21  Alejandro G. Castro  <alex at igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Initialize the events completly before emitting them.
+        https://bugs.webkit.org/show_bug.cgi?id=30633
+
+        * WebKitTools/DumpRenderTree/gtk/EventSender.cpp:
+
 2009-10-21  Kevin Ollivier  <kevino at theolliviers.com>
 
         wx build fix. Fix for when linking using --as-needed with gcc.
diff --git a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
index a36555e..9d56d96 100644
--- a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
@@ -53,6 +53,7 @@ extern "C" {
 }
 
 static bool down = false;
+static bool currentEventButton = 1;
 static bool dragMode = true;
 static bool replayingSavedEvents = false;
 static int lastMousePositionX;
@@ -145,9 +146,20 @@ static JSValueRef mouseDownCallback(JSContextRef context, JSObjectRef function,
         event.button.button = (int)JSValueToNumber(context, arguments[0], exception) + 1;
         g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));
     }
+
+    currentEventButton = event.button.button;
+
     event.button.x = lastMousePositionX;
     event.button.y = lastMousePositionY;
     event.button.window = GTK_WIDGET(view)->window;
+    event.button.time = GDK_CURRENT_TIME;
+    event.button.device = gdk_device_get_core_pointer();
+
+    int x_root, y_root;
+    gdk_window_get_root_coords(GTK_WIDGET(view)->window, lastMousePositionX, lastMousePositionY, &x_root, &y_root);
+
+    event.button.x_root = x_root;
+    event.button.y_root = y_root;
 
     updateClickCount(1);
 
@@ -187,9 +199,20 @@ static JSValueRef mouseUpCallback(JSContextRef context, JSObjectRef function, JS
         event.button.button = (int)JSValueToNumber(context, arguments[0], exception) + 1;
         g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));
     }
+
+    currentEventButton = event.button.button;
+
     event.button.x = lastMousePositionX;
     event.button.y = lastMousePositionY;
     event.button.window = GTK_WIDGET(view)->window;
+    event.button.time = GDK_CURRENT_TIME;
+    event.button.device = gdk_device_get_core_pointer();
+
+    int x_root, y_root;
+    gdk_window_get_root_coords(GTK_WIDGET(view)->window, lastMousePositionX, lastMousePositionY, &x_root, &y_root);
+
+    event.button.x_root = x_root;
+    event.button.y_root = y_root;
 
     if ((dragMode && !replayingSavedEvents) || msgQueue[endOfQueue].delay) {
         msgQueue[endOfQueue].event = event;
@@ -223,11 +246,29 @@ static JSValueRef mouseMoveToCallback(JSContextRef context, JSObjectRef function
     g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));
 
     GdkEvent event;
+    memset(&event, 0, sizeof(event));
     event.type = GDK_MOTION_NOTIFY;
     event.motion.x = lastMousePositionX;
     event.motion.y = lastMousePositionY;
     event.motion.time = GDK_CURRENT_TIME;
     event.motion.window = GTK_WIDGET(view)->window;
+    event.motion.device = gdk_device_get_core_pointer();
+
+    int x_root, y_root;
+    gdk_window_get_root_coords(GTK_WIDGET(view)->window, lastMousePositionX, lastMousePositionY, &x_root, &y_root);
+
+    event.motion.x_root = x_root;
+    event.motion.y_root = y_root;
+
+    if (down) {
+        if (currentEventButton == 1)
+            event.motion.state = GDK_BUTTON1_MASK;
+        else if (currentEventButton == 2)
+            event.motion.state = GDK_BUTTON2_MASK;
+        else if (currentEventButton == 3)
+            event.motion.state = GDK_BUTTON3_MASK;
+    } else
+        event.motion.state = 0;
 
     if (dragMode && down && !replayingSavedEvents) {
         msgQueue[endOfQueue].event = event;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list