From e81501ebea4cceffce2890519807b0c243fec0a3 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 28 Sep 2009 15:29:37 +0200 Subject: [PATCH] Sent button events don't cause passive grabs Don't track sent button events as causing or removing passive grabs. --- gdk/gdkwindow.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 93024accf3..4130b52c2a 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);