diff --git a/src/views/gcal-week-grid.c b/src/views/gcal-week-grid.c index ced41fd6..59ec049f 100644 --- a/src/views/gcal-week-grid.c +++ b/src/views/gcal-week-grid.c @@ -1008,6 +1008,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget, GcalWeekGrid *self; g_autoptr (GDateTime) week_start; g_autoptr (GDateTime) dnd_date; + g_autoptr (GDateTime) new_end; GtkWidget *event_widget; GcalEvent *event; GTimeSpan timespan = 0; @@ -1043,8 +1044,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget, * Calculate the diff between the dropped cell and the event's start date, * so we can update the end date accordingly. */ - if (gcal_event_get_date_end (event)) - timespan = g_date_time_difference (gcal_event_get_date_end (event), gcal_event_get_date_start (event)); + timespan = g_date_time_difference (gcal_event_get_date_end (event), gcal_event_get_date_start (event)); /* * Set the event's start and end dates. Since the event may have a @@ -1053,12 +1053,10 @@ gcal_week_grid_drag_drop (GtkWidget *widget, gcal_event_set_all_day (event, FALSE); gcal_event_set_date_start (event, dnd_date); - if (gcal_event_get_date_end (event)) - { - g_autoptr (GDateTime) new_end = g_date_time_add (dnd_date, timespan); - gcal_event_set_date_end (event, new_end); - } + /* Setup the new end date */ + new_end = g_date_time_add (dnd_date, timespan); + gcal_event_set_date_end (event, new_end); /* Commit the changes */ gcal_manager_update_event (self->manager, event); diff --git a/src/views/gcal-week-header.c b/src/views/gcal-week-header.c index ae92a32c..23e0a4f7 100644 --- a/src/views/gcal-week-header.c +++ b/src/views/gcal-week-header.c @@ -1402,8 +1402,10 @@ gcal_week_header_drag_drop (GtkWidget *widget, GcalWeekHeader *self; g_autoptr (GDateTime) week_start; g_autoptr (GDateTime) dnd_date; + g_autoptr (GDateTime) new_end; GDateTime *start_date; GDateTime *end_date; + GTimeSpan difference; GtkWidget *event_widget; GcalEvent *event; gboolean turn_all_day; @@ -1455,20 +1457,11 @@ gcal_week_header_drag_drop (GtkWidget *widget, 0, 0, 0); } - /* Since the event may have a NULL end date, so we have to check it here */ - if (end_date) - { - g_autoptr (GDateTime) new_end; - GTimeSpan difference; + /* End date */ + difference = turn_all_day ? 24 : g_date_time_difference (end_date, start_date) / G_TIME_SPAN_HOUR; - if (turn_all_day) - difference = 24; - else - difference = g_date_time_difference (end_date, start_date) / G_TIME_SPAN_HOUR; - - new_end = g_date_time_add_hours (dnd_date, difference); - gcal_event_set_date_end (event, new_end); - } + new_end = g_date_time_add_hours (dnd_date, difference); + gcal_event_set_date_end (event, new_end); /* * Set the start date ~after~ the end date, so we can compare