diff --git a/src/gcal-day-view.c b/src/gcal-day-view.c index 9b098dea..93167059 100644 --- a/src/gcal-day-view.c +++ b/src/gcal-day-view.c @@ -86,6 +86,8 @@ static gboolean gcal_day_view_draw_event (GcalView *view, static GtkWidget* gcal_day_view_get_by_uuid (GcalView *view, const gchar *uuid); +static void gcal_day_view_clear (GcalView *view); + G_DEFINE_TYPE_WITH_CODE (GcalDayView, gcal_day_view, GTK_TYPE_GRID, @@ -161,6 +163,7 @@ gcal_view_interface_init (GcalViewIface *iface) iface->draw_event = gcal_day_view_draw_event; iface->get_by_uuid = gcal_day_view_get_by_uuid; + iface->clear = gcal_day_view_clear; } static void @@ -463,6 +466,19 @@ gcal_day_view_get_by_uuid (GcalView *view, return NULL; } +static void +gcal_day_view_clear (GcalView *view) +{ + GcalDayViewPrivate *priv; + + priv = GCAL_DAY_VIEW (view)->priv; + + gtk_container_foreach (GTK_CONTAINER (priv->all_day_grid), + (GtkCallback) gtk_widget_destroy, NULL); + gtk_container_foreach (GTK_CONTAINER (priv->day_grid), + (GtkCallback) gtk_widget_destroy, NULL); +} + /* Public API */ /** * gcal_day_view_new: diff --git a/src/gcal-window.c b/src/gcal-window.c index 083fd451..27ce7a27 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -230,8 +230,7 @@ update_view (GcalWindow *window) widget = priv->views[priv->active_view]; /* destroying old children */ - /* gtk_container_foreach (GTK_CONTAINER (widget), */ - /* (GtkCallback) gtk_widget_destroy, NULL); */ + gcal_view_clear (GCAL_VIEW (widget)); first_day = gcal_view_get_initial_date (GCAL_VIEW (widget)); last_day = gcal_view_get_final_date (GCAL_VIEW (widget));