Add a GrabBroken event to GDK, and a grab-broken-event signal to

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

	Add a GrabBroken event to GDK, and a grab-broken-event
	signal to GtkWidget.  (#107320, Simon Cooke, initial patch
	by John Ehresman)

	* gdk/gdkevents.h: Add a GDK_GRAB_BROKEN event type,
	define a GdkEventGrabBroken event struct.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate):
	Generate GrabBroken events in response to WM_KILLFOCUS.

	* gdk/x11/gdkmain-x11.c: Generate GrabBroken events
	when a grab is broken by the window becoming unviewable,
	or by another grab from the same client.

	* gtk/gtkwidget.h (GtkWidgetClass): Add grab_broken_event.

	* gtk/gtkwidget.c (gtk_widget_event_internal): Translate
	GrabBroken events into grab_broken_event signals.

	* gtk/gtkmain.c (gtk_main_do_event): Propagate GrabBroken
	events.

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Deactivate
	the menu when the grab is broken.

	* gtk/gtkcolorsel.c (gtk_color_selection_grab_broken): Stop
	the color picker if the grab is broken.

	* gtk/gtkpaned.c (gtk_paned_grab_broken): Stop the drag if
	the grab is broken.
This commit is contained in:
Matthias Clasen
2005-06-25 07:10:40 +00:00
committed by Matthias Clasen
parent effe3785cf
commit 9b356ea0d8
16 changed files with 319 additions and 27 deletions

View File

@ -1101,6 +1101,7 @@ GdkEventNoExpose
GdkEventWindowState
GdkEventSetting
GdkEventOwnerChange
GdkEventGrabBroken
<SUBSECTION>
GdkScrollDirection

View File

@ -424,6 +424,22 @@ only available if the X server supports the XFIXES extension.
@selection_time: the time at which the selection ownership was taken over
@Since: 2.6
<!-- ##### STRUCT GdkEventGrabBroken ##### -->
<para>
Generated when a pointer or keyboard grab is broken. On X11, this happens
when the grab window becomes unviewable (i.e. it or one of its ancestors
is unmapped), or if the same application grabs the pointer or keyboard
again.
</para>
@type: the type of the event (%GDK_GRAB_BROKEN)
@window: the window which received the event, i.e. the window
that previously owned the grab
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
@keyboard: %TRUE if a keyboard grab was broken, %FALSE if a pointer
grab was broken
@Since: 2.8
<!-- ##### ENUM GdkScrollDirection ##### -->
<para>
Specifies the direction for #GdkEventScroll.

View File

@ -90,6 +90,8 @@ for the possible window states
@GDK_SETTING: a setting has been modified.
@GDK_OWNER_CHANGE: the owner of a selection has changed. This event type
was added in 2.6
@GDK_GRAB_BROKEN: a pointer or keyboard grab was broken. This event type
was added in 2.8.
<!-- ##### ENUM GdkEventMask ##### -->
<para>