diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2005-12-31 17:09:27 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2005-12-31 17:09:27 +0000 |
commit | b4471e0195b08a3e17f82980722d1a41d79148f6 (patch) | |
tree | 55286d49e994f63ce7507ac842fb9229fa5f7a53 /gtk/filter_dlg.c | |
parent | 851692e8fbc6c82b814cf78654db7d37b796db4c (diff) |
fix #152
set the read filter dialog modal and transient to the parent window if requested. This way, it will receive input signals (solving problems with GTK2's gtk_file_chooser).
To do this, add another construct_args flag, so it will be modal only if really needed ...
svn path=/trunk/; revision=16926
Diffstat (limited to 'gtk/filter_dlg.c')
-rw-r--r-- | gtk/filter_dlg.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gtk/filter_dlg.c b/gtk/filter_dlg.c index 2568f2825b..bfa0c7768d 100644 --- a/gtk/filter_dlg.c +++ b/gtk/filter_dlg.c @@ -105,7 +105,8 @@ capture_filter_construct_cb(GtkWidget *w, gpointer user_data _U_) static construct_args_t args = { "Ethereal: Capture Filter", FALSE, - FALSE + FALSE, + FALSE }; /* Has a filter dialog box already been opened for that button? */ @@ -194,7 +195,8 @@ cfilter_dialog_cb(GtkWidget *w _U_) static construct_args_t args = { "Ethereal: Capture Filter", FALSE, - FALSE + FALSE, + FALSE }; /* Has a filter dialog box already been opened for editing @@ -222,7 +224,8 @@ dfilter_dialog_cb(GtkWidget *w _U_) static construct_args_t args = { "Ethereal: Display Filter", TRUE, - TRUE + TRUE, + FALSE }; display_filter_construct_cb(OBJECT_GET_DATA(top_level, E_FILT_BT_PTR_KEY), &args); @@ -362,6 +365,12 @@ filter_dialog_new(GtkWidget *button, GtkWidget *parent_filter_te, gtk_window_set_default_size(GTK_WINDOW(main_w), 400, 400); OBJECT_SET_DATA(main_w, E_FILT_CONSTRUCT_ARGS_KEY, construct_args); + if(construct_args->modal_and_transient) { + GdkWindow* parent = gtk_widget_get_parent_window(parent_filter_te); + gtk_window_set_transient_for(GTK_WINDOW(main_w), GTK_WINDOW(parent)); + gtk_window_set_modal(GTK_WINDOW(main_w), TRUE); + } + main_vb = gtk_vbox_new(FALSE, 0); gtk_container_border_width(GTK_CONTAINER(main_vb), 5); gtk_container_add(GTK_CONTAINER(main_w), main_vb); |