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.c38
1 files changed, 31 insertions, 7 deletions
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 7c65d84d45..29ebe0d99b 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -224,8 +224,7 @@ static void e_day_view_update_resize (EDayView *day_view,
gint row);
static void e_day_view_finish_long_event_resize (EDayView *day_view);
static void e_day_view_finish_resize (EDayView *day_view);
-static void e_day_view_abort_resize (EDayView *day_view,
- guint32 time);
+static void e_day_view_abort_resize (EDayView *day_view);
static gboolean e_day_view_on_long_event_button_press (EDayView *day_view,
@@ -3932,6 +3931,12 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+ g_object_unref (comp);
+ e_day_view_abort_resize (day_view);
+ return;
+ }
+
date.value = &itt;
date.tzid = NULL;
@@ -4025,6 +4030,12 @@ e_day_view_finish_resize (EDayView *day_view)
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+ g_object_unref (comp);
+ e_day_view_abort_resize (day_view);
+ return;
+ }
+
date.value = &itt;
/* FIXME: Should probably keep the timezone of the original start
and end times. */
@@ -4093,15 +4104,13 @@ e_day_view_finish_resize (EDayView *day_view)
e_cal_component_commit_sequence (comp);
e_calendar_view_modify_and_send (comp, client, mod, toplevel, TRUE);
-
out:
g_object_unref (comp);
}
static void
-e_day_view_abort_resize (EDayView *day_view,
- guint32 time)
+e_day_view_abort_resize (EDayView *day_view)
{
gint day, event_num;
@@ -4109,7 +4118,6 @@ e_day_view_abort_resize (EDayView *day_view,
return;
day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
- gdk_pointer_ungrab (time);
day = day_view->resize_event_day;
event_num = day_view->resize_event_num;
@@ -4795,7 +4803,8 @@ e_day_view_do_key_press (GtkWidget *widget, GdkEventKey *event)
/* The Escape key aborts a resize operation. */
if (day_view->resize_drag_pos != E_CALENDAR_VIEW_POS_NONE) {
if (keyval == GDK_Escape) {
- e_day_view_abort_resize (day_view, event->time);
+ gdk_pointer_ungrab (event->time);
+ e_day_view_abort_resize (day_view);
}
return FALSE;
}
@@ -5930,6 +5939,11 @@ e_day_view_change_event_time (EDayView *day_view, time_t start_dt, time_t end_dt
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+ g_object_unref (comp);
+ return;
+ }
+
date.value = &itt;
/* FIXME: Should probably keep the timezone of the original start
and end times. */
@@ -7275,6 +7289,11 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+ g_object_unref (comp);
+ return;
+ }
+
if (start_offset == 0 && end_offset == 0)
all_day_event = TRUE;
else
@@ -7493,6 +7512,11 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
+ if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+ g_object_unref (comp);
+ return;
+ }
+
date.value = &itt;
date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));