From b0558e089e8e06a4ed2e28ee79e2c88f1c4c0570 Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Sat, 20 Feb 1999 20:11:23 +0000 Subject: hm, set_modal doesn't really work with random gtk_grab_add/gtk_grab_remove Sat Feb 20 20:59:25 1999 Tim Janik * gtk/gtkwindow.c: hm, set_modal doesn't really work with random gtk_grab_add/gtk_grab_remove calls. either the window user uses the set_modal interface or he places grab_add/grab_remove on his own. (gtk_window_set_modal): enforce modality state either way. (gtk_window_hide): revert previous change. --- gtk/gtkwindow.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'gtk/gtkwindow.c') diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 0423f77a4..ce562e108 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -484,18 +484,13 @@ gtk_window_set_modal (GtkWindow *window, g_return_if_fail (window != NULL); g_return_if_fail (GTK_IS_WINDOW (window)); - modal = modal != FALSE; + window->modal = modal != FALSE; - /* If the widget was showed already, adjust it's grab state */ - if (GTK_WIDGET_VISIBLE (window) && window->modal != modal) - { - if (modal) - gtk_grab_add (GTK_WIDGET (window)); - else - gtk_grab_remove (GTK_WIDGET (window)); - } - - window->modal = modal; + /* adjust desired modality state */ + if (GTK_WIDGET_VISIBLE (window) && window->modal) + gtk_grab_add (GTK_WIDGET (window)); + else + gtk_grab_remove (GTK_WIDGET (window)); } void @@ -787,8 +782,6 @@ gtk_window_hide (GtkWidget *widget) GTK_WIDGET_UNSET_FLAGS (widget, GTK_VISIBLE); gtk_widget_unmap (widget); - window->modal = GTK_WIDGET_HAS_GRAB (window); - if (window->modal) gtk_grab_remove (widget); } -- cgit v1.2.1