summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-09-28 15:29:37 +0200
committerAlexander Larsson <alexl@redhat.com>2009-09-28 15:29:37 +0200
commite81501ebea4cceffce2890519807b0c243fec0a3 (patch)
tree6ae17c4baba582e93503583c13e34b7a22eec83b /gdk
parent739121dee0bddddffc43d48803ca84996f42142c (diff)
downloadgdk-pixbuf-e81501ebea4cceffce2890519807b0c243fec0a3.tar.gz
Sent button events don't cause passive grabs
Don't track sent button events as causing or removing passive grabs.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/gdkwindow.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 93024accf..4130b52c2 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -9967,6 +9967,7 @@ proxy_button_event (GdkEvent *source_event,
&toplevel_x, &toplevel_y);
if (type == GDK_BUTTON_PRESS &&
+ !source_event->any.send_event &&
_gdk_display_has_pointer_grab (display, serial) == NULL)
{
pointer_window =
@@ -10176,6 +10177,7 @@ _gdk_windowing_got_event (GdkDisplay *display,
if (_gdk_native_windows)
{
if (event->type == GDK_BUTTON_PRESS &&
+ !event->any.send_event &&
_gdk_display_has_pointer_grab (display, serial) == NULL)
{
_gdk_display_add_pointer_grab (display,
@@ -10189,7 +10191,8 @@ _gdk_windowing_got_event (GdkDisplay *display,
_gdk_display_pointer_grab_update (display,
serial);
}
- if (event->type == GDK_BUTTON_RELEASE)
+ if (event->type == GDK_BUTTON_RELEASE &&
+ !event->any.send_event)
{
button_release_grab =
_gdk_display_has_pointer_grab (display, serial);
@@ -10312,7 +10315,8 @@ _gdk_windowing_got_event (GdkDisplay *display,
unlink_event = proxy_button_event (event,
serial);
- if (event->type == GDK_BUTTON_RELEASE)
+ if (event->type == GDK_BUTTON_RELEASE &&
+ !event->any.send_event)
{
button_release_grab =
_gdk_display_has_pointer_grab (display, serial);