gcal-window: fixed update_view method

Used new GcalView:clear to destroy all the event-widget children of a view
This commit is contained in:
Erick Pérez Castellanos
2014-12-04 17:10:27 -05:00
parent fcef0d64d1
commit b54ac5510b
2 changed files with 17 additions and 2 deletions
+16
View File
@@ -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:
+1 -2
View File
@@ -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));