From d9d36a77c6d319f61d5b18db370141854cd4c617 Mon Sep 17 00:00:00 2001 From: Suman Manjunath Date: Mon, 14 Jan 2008 08:34:15 +0000 Subject: Fix for bug #339620 (Disconnect signal handlers in the destroy_handler of recurrence-page dialog) svn path=/trunk/; revision=34811 --- calendar/ChangeLog | 7 +++++++ calendar/gui/dialogs/recurrence-page.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 81e46340e6..b556e9609d 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,10 @@ +2008-01-14 Suman Manjunath + + ** Fix for bug #339620 + + * gui/dialogs/recurrence-page.c: (recurrence_page_finalize): Disconnect + signal handlers on destroy. + 2008-01-14 Suresh Chandrasekharan ** Fix for bug #264404 diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index c86137a5a5..485ac95ec0 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -207,6 +207,8 @@ static gboolean recurrence_page_fill_widgets (CompEditorPage *page, ECalComponen static gboolean recurrence_page_fill_component (CompEditorPage *page, ECalComponent *comp); static void recurrence_page_set_dates (CompEditorPage *page, CompEditorPageDates *dates); static void preview_date_range_changed_cb (ECalendarItem *item, gpointer data); +static void interval_selection_done_cb (GtkOptionMenu *menu, gpointer data); +static void ending_selection_done_cb (GtkOptionMenu *menu, gpointer data); static void field_changed (RecurrencePage *apage); static void make_ending_count_special (RecurrencePage *rpage); @@ -285,6 +287,11 @@ recurrence_page_finalize (GObject *object) g_signal_handlers_disconnect_matched (E_CALENDAR (priv->preview_calendar)->calitem, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, preview_date_range_changed_cb, NULL); + g_signal_handlers_disconnect_by_func (GTK_OPTION_MENU (priv->interval_unit), + G_CALLBACK (interval_selection_done_cb), rpage); + g_signal_handlers_disconnect_by_func (GTK_OPTION_MENU (priv->ending_menu), + G_CALLBACK (ending_selection_done_cb), rpage); + if (priv->main) g_object_unref (priv->main); -- cgit v1.2.3