From 76a0211377443d28c6478330c34370741c100a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Thu, 4 Jul 2013 17:15:04 -0400 Subject: [PATCH] gcal-window: added dates adjusting on event-creation Adjust dates according to the active view when necessary --- src/gcal-window.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/gcal-window.c b/src/gcal-window.c index 29992553..0be8f4c9 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -1453,7 +1453,30 @@ gcal_window_new_event (GcalWindow *window) priv->event_creation_data->x = x; priv->event_creation_data->y = y; priv->event_creation_data->start_date = gcal_dup_icaltime (priv->active_date); - g_debug ("[show_new_event] position (%d, %d)", x, y); + priv->event_creation_data->end_date = gcal_dup_icaltime (priv->active_date); + + /* adjusting dates according to the actual view */ + switch (priv->active_view) + { + case GCAL_WINDOW_VIEW_DAY: + case GCAL_WINDOW_VIEW_WEEK: + priv->event_creation_data->end_date->hour += 1; + *(priv->event_creation_data->end_date) = + icaltime_normalize (*(priv->event_creation_data->end_date)); + break; + case GCAL_WINDOW_VIEW_YEAR: + priv->event_creation_data->start_date->day = 1; + priv->event_creation_data->end_date->day = + icaltime_days_in_month (priv->event_creation_data->end_date->month, + priv->event_creation_data->end_date->year); + break; + case GCAL_WINDOW_VIEW_MONTH: + priv->event_creation_data->start_date->is_date = 1; + priv->event_creation_data->end_date->is_date = 1; + break; + case GCAL_WINDOW_VIEW_LIST: + break; + } prepare_new_event_widget (GCAL_WINDOW (window));