[gtk+] Sent button events don't cause passive grabs



commit e81501ebea4cceffce2890519807b0c243fec0a3
Author: Alexander Larsson <alexl redhat com>
Date:   Mon Sep 28 15:29:37 2009 +0200

    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 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 93024ac..4130b52 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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]