aboutsummaryrefslogtreecommitdiffstats
path: root/filter/vfolder-rule.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/vfolder-rule.c')
-rw-r--r--filter/vfolder-rule.c14
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);
}