aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-day-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-day-view.c')
-rw-r--r--calendar/gui/e-day-view.c39
1 files changed, 31 insertions, 8 deletions
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 5d3a552f44..b5c5a3b30f 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -1063,6 +1063,7 @@ e_day_view_init (EDayView *day_view)
day_view->last_edited_comp_string = NULL;
+
day_view->selection_start_row = -1;
day_view->selection_start_day = -1;
day_view->selection_end_row = -1;
@@ -1070,7 +1071,8 @@ e_day_view_init (EDayView *day_view)
day_view->selection_is_being_dragged = FALSE;
day_view->selection_drag_pos = E_DAY_VIEW_DRAG_END;
day_view->selection_in_top_canvas = FALSE;
-
+ day_view->drag_event_day = -1;
+ day_view->drag_event_num = -1;
day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
day_view->pressed_event_day = -1;
@@ -3366,6 +3368,12 @@ e_day_view_on_top_canvas_button_press (GtkWidget *widget,
gint event_x, event_y, day, event_num;
ECalendarViewPosition pos;
+ if (day_view->resize_event_num != -1)
+ day_view->resize_event_num = -1;
+
+ if (day_view->drag_event_num != -1)
+ day_view->drag_event_num = -1;
+
/* Convert the coords to the main canvas window, or return if the
window is not found. */
if (!e_day_view_convert_event_coords (day_view, (GdkEvent*) event,
@@ -3492,6 +3500,12 @@ e_day_view_on_main_canvas_button_press (GtkWidget *widget,
g_print ("In e_day_view_on_main_canvas_button_press\n");
#endif
+ if (day_view->resize_event_num != -1)
+ day_view->resize_event_num = -1;
+
+ if (day_view->drag_event_num != -1)
+ day_view->drag_event_num = -1;
+
/* Convert the coords to the main canvas window, or return if the
window is not found. */
if (!e_day_view_convert_event_coords (day_view, (GdkEvent*) event,
@@ -3627,9 +3641,6 @@ e_day_view_on_long_event_button_press (EDayView *day_view,
e = &g_array_index (day_view->long_events, EDayViewEvent, event_num);
- if (!GTK_WIDGET_HAS_FOCUS (day_view))
- gtk_widget_grab_focus (GTK_WIDGET (day_view));
-
e_day_view_set_selected_time_range_in_top_visible (day_view, e->start, e->end);
e_day_view_on_event_right_click (day_view, event,
@@ -3670,9 +3681,6 @@ e_day_view_on_event_button_press (EDayView *day_view,
e = &g_array_index (day_view->events[day], EDayViewEvent, event_num);
- if (!GTK_WIDGET_HAS_FOCUS (day_view))
- gtk_widget_grab_focus (GTK_WIDGET (day_view));
-
e_day_view_set_selected_time_range_visible (day_view, e->start, e->end);
e_day_view_on_event_right_click (day_view, event,
@@ -7070,8 +7078,14 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item,
#endif
break;
- case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
+ if (day_view->resize_event_num != -1)
+ day_view->resize_event_num = -1;
+
+ if (day_view->drag_event_num != -1)
+ day_view->drag_event_num = -1;
+
+ case GDK_BUTTON_PRESS:
tooltip_destroy (day_view, item);
/* Only let the EText handle the event while editing. */
if (!E_TEXT (item)->editing)
@@ -7123,6 +7137,15 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item,
if (pos == E_CALENDAR_VIEW_POS_OUTSIDE)
return FALSE;
+ if (day_view->editing_event_num != -1)
+ break;
+
+ if (day_view->resize_event_num != -1)
+ break;
+
+ if (day_view->drag_event_num != -1)
+ break;
+
pevent = tooltip_get_view_event (day_view, day, event_num);
g_object_set_data (G_OBJECT (item), "event-num", GINT_TO_POINTER (event_num));
g_object_set_data (G_OBJECT (item), "event-day", GINT_TO_POINTER (day));