diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-06-14 21:44:01 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-06-14 21:44:01 +0000 |
commit | cf2fab907731469bc0753b4f73b04c11633d336c (patch) | |
tree | e897e81aee574e87ab3f0bbeb14cc2ade51c5da2 /gtk/gtkplug.c | |
parent | 22491fd6a4ee247bf49988db49250a6e3c278bf0 (diff) | |
download | gtk+-cf2fab907731469bc0753b4f73b04c11633d336c.tar.gz |
Add a GtkWindowGroup struct that allows grouping together multiple windows
Fri Jun 8 17:56:52 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.[ch] gtk/gtkmain.c: Add a GtkWindowGroup struct
that allows grouping together multiple windows so that grabs
within that set of windows only affect those windows.
* gtk/gtkmain.c gtk/gtkwidget.[ch]: Add a "grab_notify"
signal for notification when a widget becomes shadowed
by a grab or is no longer shadowed by a grab.
* gtk/gtkwidget.c (gtk_widget_propagate_state)
gtk/gtkmain.c: (gtk_widget_grab_add): Don't allow
insenstive widgets to maintain a grab.
Diffstat (limited to 'gtk/gtkplug.c')
-rw-r--r-- | gtk/gtkplug.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/gtk/gtkplug.c b/gtk/gtkplug.c index 1f7319b390..fa2b37c9f2 100644 --- a/gtk/gtkplug.c +++ b/gtk/gtkplug.c @@ -119,10 +119,6 @@ gtk_plug_init (GtkPlug *plug) window->type = GTK_WINDOW_TOPLEVEL; window->auto_shrink = TRUE; - -#if 0 - gtk_window_set_grab_group (window, window); -#endif } void @@ -168,10 +164,11 @@ gtk_plug_unrealize (GtkWidget *widget) plug->socket_window = NULL; } -#if 0 if (plug->modality_window) handle_modality_off (plug); -#endif + + gtk_window_group_remove_window (plug->modality_group, GTK_WINDOW (plug)); + g_object_unref (plug->modality_group); if (GTK_WIDGET_CLASS (parent_class)->unrealize) (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); @@ -236,6 +233,9 @@ gtk_plug_realize (GtkWidget *widget) gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gdk_window_add_filter (widget->window, gtk_plug_filter_func, widget); + + plug->modality_group = gtk_window_group_new (); + gtk_window_group_add_window (plug->modality_group, window); } static gboolean @@ -574,27 +574,22 @@ focus_first_last (GtkPlug *plug, static void handle_modality_on (GtkPlug *plug) { -#if 0 if (!plug->modality_window) { plug->modality_window = gtk_window_new (GTK_WINDOW_POPUP); - gtk_window_set_grab_group (GTK_WINDOW (plug->modality_window), GTK_WINDOW (plug)); + gtk_window_group_add_window (plug->modality_group, GTK_WINDOW (plug->modality_window)); gtk_grab_add (plug->modality_window); } -#endif } static void handle_modality_off (GtkPlug *plug) { -#if 0 if (plug->modality_window) { - gtk_grab_remove (plug->modality_window); gtk_widget_destroy (plug->modality_window); plug->modality_window = NULL; } -#endif } static void |