aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@novell.com>2004-06-10 20:04:42 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2004-06-10 20:04:42 +0800
commit9cfacbca72b36382687b45e5de71cc73280cc10e (patch)
treef3b9619cbec470bfab3dfb18274126d59a833f7c /calendar/gui
parent5a58230a6d1615225ed6feb32091a5d1b0ac517d (diff)
downloadgsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar.gz
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar.bz2
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar.lz
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar.xz
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.tar.zst
gsoc2013-evolution-9cfacbca72b36382687b45e5de71cc73280cc10e.zip
Fixes #58799
2004-06-10 Rodrigo Moya <rodrigo@novell.com> Fixes #58799 * gui/e-calendar-view.c (e_calendar_view_delete_selected_occurrence): Use the timezone for getting the RECUR-ID from the instance start date if available. Also, use dates only as the recurrence ID, and do nothing if not a recurrent appointment. svn path=/trunk/; revision=26281
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/e-calendar-view.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index cf0feb531f..12e8ec93b3 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -892,12 +892,26 @@ e_calendar_view_delete_selected_occurrence (ECalendarView *cal_view)
rid = e_cal_component_get_recurid_as_string (comp);
else {
ECalComponentDateTime dt;
+ icaltimezone *zone;
+ if (!e_cal_component_has_recurrences (comp)) {
+ g_object_unref (comp);
+ return;
+ }
+
+ /* get the RECUR-ID from the start date */
e_cal_component_get_dtstart (comp, &dt);
if (dt.value) {
- rid = icaltime_as_ical_string (icaltime_from_timet (event->start, dt.value->is_date));
- e_cal_component_free_datetime (&dt);
+ if (e_cal_get_timezone (event->comp_data->client, dt.tzid, &zone, NULL)) {
+ rid = icaltime_as_ical_string (
+ icaltime_from_timet_with_zone (event->start, TRUE, zone));
+ } else {
+ rid = icaltime_as_ical_string (
+ icaltime_from_timet (event->start, TRUE));
+ }
}
+
+ e_cal_component_free_datetime (&dt);
}
if (rid) {