aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-vfolder-ui.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2012-07-11 22:38:27 +0800
committerMilan Crha <mcrha@redhat.com>2012-07-11 22:38:27 +0800
commit0c881254de455c77032b24d419bdabe7a4b5adfd (patch)
treed1e3782305097e07752de2061d86a4e43e4631e5 /mail/mail-vfolder-ui.c
parent1852490a930c625a5fb300069694d661e3eeed02 (diff)
downloadgsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar.gz
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar.bz2
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar.lz
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar.xz
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.tar.zst
gsoc2013-evolution-0c881254de455c77032b24d419bdabe7a4b5adfd.zip
Bug #223309 - Add "Include Subfolders" to "Search Folder Sources"
Diffstat (limited to 'mail/mail-vfolder-ui.c')
-rw-r--r--mail/mail-vfolder-ui.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/mail/mail-vfolder-ui.c b/mail/mail-vfolder-ui.c
index 14b55d1d8f..d9b68ad834 100644
--- a/mail/mail-vfolder-ui.c
+++ b/mail/mail-vfolder-ui.c
@@ -256,6 +256,16 @@ vfolder_clone_rule (EMailSession *session,
return rule;
}
+static void
+release_rule_notify_cb (gpointer rule)
+{
+ /* disconnect the "changed" signal */
+ g_signal_handlers_disconnect_by_data (rule,
+ g_object_get_data (rule, "editor-dlg"));
+ g_object_set_data (rule, "editor-dlg", NULL);
+ g_object_unref (rule);
+}
+
/* adds a rule with a gui */
void
vfolder_gui_add_rule (EMVFolderRule *rule)
@@ -283,9 +293,10 @@ vfolder_gui_add_rule (EMVFolderRule *rule)
gtk_window_set_default_size (GTK_WINDOW (gd), 500, 500);
gtk_box_pack_start (GTK_BOX (container), w, TRUE, TRUE, 0);
gtk_widget_show ((GtkWidget *) gd);
+ g_object_set_data (G_OBJECT (rule), "editor-dlg", gd);
g_object_set_data_full (
G_OBJECT (gd), "rule", rule,
- (GDestroyNotify) g_object_unref);
+ release_rule_notify_cb);
g_signal_connect (
rule, "changed",
G_CALLBACK (new_rule_changed_cb), gd);