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