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/vfolder-rule.c | |
parent | 95e93d3433ca1481fc01c1ca177f69628e725432 (diff) | |
download | gsoc2013-evolution-8b80096cad750de0a00b252730aa019a69314813.tar.gz 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/vfolder-rule.c')
-rw-r--r-- | filter/vfolder-rule.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/filter/vfolder-rule.c b/filter/vfolder-rule.c index f940747c71..818b303366 100644 --- a/filter/vfolder-rule.c +++ b/filter/vfolder-rule.c @@ -358,12 +358,20 @@ source_add(GtkWidget *widget, struct _source_data *data) GList *l; gchar *s; + gtk_widget_set_sensitive(widget, FALSE); def = ""; evolution_shell_client_user_select_folder (global_shell_client, GTK_WINDOW (gtk_widget_get_toplevel (widget)), _("Select Folder"), def, allowed_types, NULL, &uri); + if (GTK_OBJECT_DESTROYED(widget)) { + g_free(uri); + return; + } + + gtk_widget_set_sensitive(widget, TRUE); + if (uri != NULL && uri[0] != '\0') { data->vr->sources = g_list_append(data->vr->sources, uri); |