diff options
Diffstat (limited to 'filter/vfolder-rule.c')
-rw-r--r-- | filter/vfolder-rule.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/filter/vfolder-rule.c b/filter/vfolder-rule.c index 818b303366..36b381eb06 100644 --- a/filter/vfolder-rule.c +++ b/filter/vfolder-rule.c @@ -352,7 +352,8 @@ select_source_with(GtkWidget *w, struct _source_data *data) static void source_add(GtkWidget *widget, struct _source_data *data) { - const char *allowed_types[] = { "mail", NULL }; + static const char *allowed_types[] = { "mail", NULL }; + GNOME_Evolution_Folder *folder; char *def, *uri; GtkListItem *item; GList *l; @@ -363,16 +364,18 @@ source_add(GtkWidget *widget, struct _source_data *data) evolution_shell_client_user_select_folder (global_shell_client, GTK_WINDOW (gtk_widget_get_toplevel (widget)), _("Select Folder"), - def, allowed_types, NULL, &uri); + def, allowed_types, &folder); if (GTK_OBJECT_DESTROYED(widget)) { - g_free(uri); + if (folder) + CORBA_free (folder); return; } gtk_widget_set_sensitive(widget, TRUE); - if (uri != NULL && uri[0] != '\0') { + if (folder) { + uri = g_strdup (folder->physicalUri); data->vr->sources = g_list_append(data->vr->sources, uri); l = NULL; @@ -385,9 +388,8 @@ source_add(GtkWidget *widget, struct _source_data *data) gtk_list_append_items(data->list, l); gtk_list_select_child(data->list, (GtkWidget *)item); data->current = uri; - } else { - g_free(uri); } + CORBA_free (folder); set_sensitive(data); } |