Ignore GrabBroken events which are caused by overgrabbing inside the
2005-06-27 Matthias Clasen <mclasen@redhat.com> * gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore GrabBroken events which are caused by overgrabbing inside the application; menus rely on these for their operation. * gdk/gdkevents.h (struct _GdkEventGrabBroken): Add a grab_window field. * gdk/win32/gdkevents-win32.c (gdk_event_translate): Set grab_window to NULL when generating GrabBroken events for WM_KILLFOCUS messages. * gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_unmap) (_gdk_xgrab_check_destroy): Set grab_window to NULL when generating GrabBroken events when the grab window becomes unviewable or is destroyed. * gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab): Generate GrabBroken events when overriding a grab inside the application. In this case, set grab_window to the new grab_window.
This commit is contained in:
committed by
Matthias Clasen
parent
f49eab1248
commit
b2343762b1
@ -2926,6 +2926,7 @@ gdk_event_translate (GdkDisplay *display,
|
||||
event->grab_broken.window = p_grab_window;
|
||||
event->grab_broken.send_event = 0;
|
||||
event->grab_broken.keyboard = FALSE;
|
||||
event->grab_broken.grab_window = NULL;
|
||||
|
||||
append_event (display, event);
|
||||
}
|
||||
@ -2936,6 +2937,7 @@ gdk_event_translate (GdkDisplay *display,
|
||||
event->grab_broken.window = k_grab_window;
|
||||
event->grab_broken.send_event = 0;
|
||||
event->grab_broken.keyboard = TRUE;
|
||||
event->grab_broken.grab_window = NULL;
|
||||
|
||||
append_event (display, event);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user