Handle broken grabs.

2005-06-29  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkbutton.c (gtk_button_grab_broken): Handle broken
        grabs.

        * gtk/gtkrange.c (gtk_range_grab_broken): Handle broken
        grabs.

        * gdk/gdkevents.h: Add a boolean to specify wether the broken
        grab was implicit.

        * gdk/x11/gdkdisplay-x11.c (gdk_display_pointer_is_grabbed):
        As the documentation states, don't return TRUE for
        implicit grabs.

        * gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
        a boolean field to store wether a pointer grab is implicit.

        * gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_button_event):
        Track implicit grabs.

        * gdk/x11/gdkevents-x11.c (gdk_event_translate): Call
        _gdk_xgrab_check_button_event for button events.
This commit is contained in:
Matthias Clasen
2005-06-30 03:35:30 +00:00
committed by Matthias Clasen
parent 546e045ccf
commit 87cafe5b4b
10 changed files with 184 additions and 12 deletions

View File

@ -1132,6 +1132,8 @@ gdk_event_translate (GdkDisplay *display,
}
set_user_time (window, event);
_gdk_xgrab_check_button_event (window, xevent);
break;
case ButtonRelease:
@ -1170,7 +1172,8 @@ gdk_event_translate (GdkDisplay *display,
event->button.device = display->core_pointer;
set_screen_from_root (display, event, xevent->xbutton.root);
_gdk_xgrab_check_button_event (window, xevent);
break;
case MotionNotify: