aboutsummaryrefslogtreecommitdiffstats
path: root/modules/calendar
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@novell.com>2010-03-14 03:48:21 +0800
committerMichael Meeks <michael.meeks@novell.com>2010-03-14 04:54:14 +0800
commitf767cb847bebc3b9935137076d7e43f44f029029 (patch)
tree05be3c4fc9a57d87856be19982d007cc10b09c85 /modules/calendar
parent13dd2b58d5adf127e609af25757c53637f4add07 (diff)
downloadgsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar.gz
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar.bz2
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar.lz
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar.xz
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.tar.zst
gsoc2013-evolution-f767cb847bebc3b9935137076d7e43f44f029029.zip
Fix GnomeCalendar lifecycle; not being a widget meant we didn't
get a gtk_widget_destroy invocation, which meant we left some callbacks registered, long after our child 'views' were destroyed causing sudden death in update_marcus_bains_line_cb, manipulating views.
Diffstat (limited to 'modules/calendar')
-rw-r--r--modules/calendar/e-cal-shell-content.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/modules/calendar/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c
index 67081ce978..bffa39a35e 100644
--- a/modules/calendar/e-cal-shell-content.c
+++ b/modules/calendar/e-cal-shell-content.c
@@ -204,6 +204,7 @@ cal_shell_content_dispose (GObject *object)
}
if (priv->calendar != NULL) {
+ gnome_calendar_dispose (priv->calendar);
g_object_unref (priv->calendar);
priv->calendar = NULL;
}
@@ -324,10 +325,7 @@ cal_shell_content_constructed (GObject *object)
/* Add views in the order defined by GnomeCalendarViewType, such
* that the notebook page number corresponds to the view type. */
- /* XXX GnomeCalendar is a widget, but we don't pack it.
- * Maybe it should just be a GObject instead? */
priv->calendar = gnome_calendar_new (shell_settings);
- g_object_ref_sink (priv->calendar);
calendar = GNOME_CALENDAR (priv->calendar);
for (ii = 0; ii < GNOME_CAL_LAST_VIEW; ii++) {