aboutsummaryrefslogtreecommitdiffstats
path: root/filter/rule-editor.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2001-11-28 05:32:04 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-11-28 05:32:04 +0800
commit8b80096cad750de0a00b252730aa019a69314813 (patch)
treef16db931321510ec819c21aef48cd4695876d7ea /filter/rule-editor.c
parent95e93d3433ca1481fc01c1ca177f69628e725432 (diff)
downloadgsoc2013-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.c14
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);