aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-week-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-week-view.c')
-rw-r--r--calendar/gui/e-week-view.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 0c3ca360ad..c7004cbbd1 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -2943,6 +2943,14 @@ e_week_view_start_editing_event (EWeekView *week_view,
if (!span->text_item)
return FALSE;
+ if (week_view->editing_event_num >= 0) {
+ EWeekViewEvent *editing = &g_array_index (week_view->events, EWeekViewEvent, week_view->editing_event_num);
+
+ /* do not change to other part of same component - the event is spread into more days */
+ if (editing && event && editing->comp_data == event->comp_data)
+ return FALSE;
+ }
+
if (initial_text) {
gnome_canvas_item_set (span->text_item,
"text", initial_text,
@@ -2960,6 +2968,9 @@ e_week_view_start_editing_event (EWeekView *week_view,
event = &g_array_index (week_view->events, EWeekViewEvent, event_num);
if (event_num >= week_view->events->len || event->comp_data != comp_data) {
+ /* When got in because of other comp_data, then be sure we go through all events */
+ event_num = week_view->events->len;
+
/* Unfocussing can cause a removal but not a new
* addition so just run backwards through the
* events */