aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-config-default-folders.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell-config-default-folders.c')
-rw-r--r--shell/e-shell-config-default-folders.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/shell/e-shell-config-default-folders.c b/shell/e-shell-config-default-folders.c
index 776bb015de..45bfe87a4d 100644
--- a/shell/e-shell-config-default-folders.c
+++ b/shell/e-shell-config-default-folders.c
@@ -95,9 +95,11 @@ config_control_apply_cb (EvolutionConfigControl *control,
}
static void
-config_control_destroy_cb (EvolutionConfigControl *config_control,
- EvolutionDefaultFolderConfig *dfc)
+config_control_destroy_notify (void *data,
+ GObject *where_the_config_control_was)
{
+ EvolutionDefaultFolderConfig *dfc = (EvolutionDefaultFolderConfig *) data;
+
g_object_unref (dfc->config_listener);
g_free (dfc->mail_uri);
@@ -188,8 +190,8 @@ e_shell_config_default_folders_create_widget (EShell *shell, EvolutionConfigCont
g_signal_connect (dfc->config_control, "apply",
G_CALLBACK (config_control_apply_cb), dfc);
- g_signal_connect (dfc->config_control, "destroy",
- G_CALLBACK (config_control_destroy_cb), dfc);
+
+ g_object_weak_ref (G_OBJECT (dfc->config_control), config_control_destroy_notify, dfc);
return widget;
}