aboutsummaryrefslogtreecommitdiffstats
path: root/my-evolution/e-summary-calendar.c
diff options
context:
space:
mode:
Diffstat (limited to 'my-evolution/e-summary-calendar.c')
-rw-r--r--my-evolution/e-summary-calendar.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/my-evolution/e-summary-calendar.c b/my-evolution/e-summary-calendar.c
index e5d3765424..de7c1d7bc6 100644
--- a/my-evolution/e-summary-calendar.c
+++ b/my-evolution/e-summary-calendar.c
@@ -51,6 +51,7 @@ struct _ESummaryCalendar {
char *default_uri;
GConfClient *gconf_client;
+ int gconf_value_changed_handler_id;
int cal_open_reload_timeout_id;
int reload_count;
@@ -570,8 +571,9 @@ setup_gconf_client (ESummary *summary)
calendar->gconf_client = gconf_client_get_default ();
- g_signal_connect (calendar->gconf_client, "value_changed",
- G_CALLBACK (gconf_client_value_changed_cb), summary);
+ calendar->gconf_value_changed_handler_id
+ = g_signal_connect (calendar->gconf_client, "value_changed",
+ G_CALLBACK (gconf_client_value_changed_cb), summary);
gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/calendar", FALSE, NULL);
gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/shell/default_folders", FALSE, NULL);
@@ -619,7 +621,10 @@ e_summary_calendar_free (ESummary *summary)
g_object_unref (calendar->client);
g_free (calendar->html);
g_free (calendar->default_uri);
-
+
+ if (calendar->gconf_value_changed_handler_id != 0)
+ g_signal_handler_disconnect (calendar->gconf_client,
+ calendar->gconf_value_changed_handler_id);
g_object_unref (calendar->gconf_client);
g_free (calendar);