From 9b281eff6988e49c43ba98417c1f1c3f0585bcaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Mon, 20 Oct 2014 11:33:28 -0400 Subject: [PATCH] month-view: implement ECalDataModel::components_modified vfunc --- src/gcal-month-view.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/gcal-month-view.c b/src/gcal-month-view.c index a995c279..46f04a9c 100644 --- a/src/gcal-month-view.c +++ b/src/gcal-month-view.c @@ -1063,7 +1063,7 @@ gcal_month_view_add (GtkContainer *container, //TODO: remove once the main-dev phase its over g_warning ("Trying to add an event with the same uuid to the view"); g_free (date); - g_object_unref (widget); /* FIXME: check if this destroy it */ + gtk_widget_destroy (widget); return; } } @@ -1425,6 +1425,32 @@ gcal_month_view_subscriber_component_modified (ECalDataModelSubscriber *subscrib ECalClient *client, ECalComponent *comp) { + GtkWidget *event; + GtkWidget *widget; + GcalEventData *data; + + data = g_new0 (GcalEventData, 1); + data->source = e_client_get_source (E_CLIENT (client)); + data->event_component = e_cal_component_clone (comp); + + event = gcal_event_widget_new_from_data (data); + g_free (data); + + widget = + gcal_view_get_by_uuid (GCAL_VIEW (subscriber), + gcal_event_widget_peek_uuid (GCAL_EVENT_WIDGET (event))); + if (widget != NULL) + { + gtk_widget_destroy (widget); + + gtk_widget_show (event); + gtk_container_add (GTK_CONTAINER (subscriber), event); + } + + g_signal_connect (event, + "activate", + G_CALLBACK (event_opened), + subscriber); } static void