diff options
Diffstat (limited to 'WebKitTools/DumpRenderTree/gtk/EventSender.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/gtk/EventSender.cpp | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp index f42928c..6268b5b 100644 --- a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp +++ b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp @@ -200,6 +200,23 @@ static JSValueRef mouseDownCallback(JSContextRef context, JSObjectRef function, return JSValueMakeUndefined(context); } +static guint getStateFlags() +{ + guint state = 0; + + if (down) { + if (currentEventButton == 1) + state = GDK_BUTTON1_MASK; + else if (currentEventButton == 2) + state = GDK_BUTTON2_MASK; + else if (currentEventButton == 3) + state = GDK_BUTTON3_MASK; + } else + state = 0; + + return state; +} + static JSValueRef mouseUpCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) { @@ -207,8 +224,6 @@ static JSValueRef mouseUpCallback(JSContextRef context, JSObjectRef function, JS if (!view) return JSValueMakeUndefined(context); - down = false; - GdkEvent event; memset(&event, 0, sizeof(event)); event.type = GDK_BUTTON_RELEASE; @@ -226,6 +241,9 @@ static JSValueRef mouseUpCallback(JSContextRef context, JSObjectRef function, JS event.button.window = GTK_WIDGET(view)->window; event.button.time = GDK_CURRENT_TIME; event.button.device = gdk_device_get_core_pointer(); + event.button.state = getStateFlags(); + + down = false; int x_root, y_root; #if GTK_CHECK_VERSION(2,17,3) @@ -286,16 +304,8 @@ static JSValueRef mouseMoveToCallback(JSContextRef context, JSObjectRef function 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; + + event.motion.state = getStateFlags(); if (dragMode && down && !replayingSavedEvents) { msgQueue[endOfQueue].event = event; |