diff options
author | Not Zed <NotZed@Ximian.com> | 2001-11-28 05:32:04 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-11-28 05:32:04 +0800 |
commit | 8b80096cad750de0a00b252730aa019a69314813 (patch) | |
tree | f16db931321510ec819c21aef48cd4695876d7ea /filter/rule-editor.c | |
parent | 95e93d3433ca1481fc01c1ca177f69628e725432 (diff) | |
download | gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.gz gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.bz2 gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.lz gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.xz gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.zst gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.zip |
Hook onto destroy event. (edit_editor_destroyed): IF we get destroyed,
2001-11-21 Not Zed <NotZed@Ximian.com>
* rule-editor.c (rule_edit): Hook onto destroy event.
(edit_editor_destroyed): IF we get destroyed, fake a -1 click
event to clean up.
(rule_add): hook onto destroy of dialogue.
(add_editor_destroyed): Simulate -1 click event to clean up. Fix
for #15745.
2001-11-20 Not Zed <NotZed@Ximian.com>
* vfolder-rule.c (source_add): Desensitise button while we're
running, and if we are destroyed, exit and do nothing when we're
done. Fixes crash in #15498.
* filter-folder.c (button_clicked): Ref 'ff' around dialogue
showing incase we go away before it returns. Also desensitise
button that invoked us while its being processed & remove
'is_active' hack. Fixes similar problems to those in #15498.
svn path=/trunk/; revision=14794
Diffstat (limited to 'filter/rule-editor.c')
-rw-r--r-- | filter/rule-editor.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/filter/rule-editor.c b/filter/rule-editor.c index 9bb90c2b89..2529790283 100644 --- a/filter/rule-editor.c +++ b/filter/rule-editor.c @@ -264,6 +264,12 @@ add_editor_clicked (GtkWidget *dialog, int button, RuleEditor *re) } static void +add_editor_destroyed(GtkWidget *w, RuleEditor *re) +{ + add_editor_clicked(w, -1, re); +} + +static void rule_add (GtkWidget *widget, RuleEditor *re) { GtkWidget *rules; @@ -285,6 +291,7 @@ rule_add (GtkWidget *widget, RuleEditor *re) gtk_widget_set_parent_window (GTK_WIDGET (re->dialog), GTK_WIDGET (re)->window); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (re->dialog), "clicked", add_editor_clicked, re); + gtk_signal_connect (GTK_OBJECT (re->dialog), "destroy", add_editor_destroyed, re); gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE); gtk_widget_show (re->dialog); @@ -331,6 +338,12 @@ edit_editor_clicked (GtkWidget *dialog, int button, RuleEditor *re) } static void +edit_editor_destroyed(GtkWidget *w, RuleEditor *re) +{ + edit_editor_clicked(w, -1, re); +} + +static void rule_edit (GtkWidget *widget, RuleEditor *re) { GtkWidget *rules; @@ -351,6 +364,7 @@ rule_edit (GtkWidget *widget, RuleEditor *re) gtk_widget_set_parent (re->dialog, GTK_WIDGET (re)); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (re->dialog), "clicked", edit_editor_clicked, re); + gtk_signal_connect (GTK_OBJECT (re->dialog), "destroy", edit_editor_destroyed, re); gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE); |