diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2001-07-31 22:46:48 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2001-07-31 22:46:48 +0800 |
commit | 627e7113cc97bc3ca2a94ea7c3a556eb15b95af0 (patch) | |
tree | 64e853299ad7c99da0c5eaa810934037377ab499 /calendar/gui | |
parent | 50d1ebd64aeec09a01ddc3e89185ac61a16e8702 (diff) | |
download | gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar.gz gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar.bz2 gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar.lz gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar.xz gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.tar.zst gsoc2013-evolution-627e7113cc97bc3ca2a94ea7c3a556eb15b95af0.zip |
yes, set the end date, but correctly calculated, not by using the
2001-07-31 Rodrigo Moya <rodrigo@ximian.com>
* gui/e-day-view.c (selection_received):
* gui/e-week-view.c (selection_received): yes, set the end date, but
correctly calculated, not by using the component's duration, which
may not exist. Now really fixes #5836
svn path=/trunk/; revision=11510
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/e-day-view.c | 14 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 12 |
2 files changed, 25 insertions, 1 deletions
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 4da82c61a5..daff360ab6 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -6680,6 +6680,8 @@ selection_received (GtkWidget *invisible, icalcomponent_kind kind; CalComponent *comp; char *uid; + time_t tt_start, tt_end; + struct icaldurationtype ic_dur; g_return_if_fail (E_IS_DAY_VIEW (day_view)); @@ -6718,9 +6720,14 @@ selection_received (GtkWidget *invisible, child_kind == ICAL_VJOURNAL_COMPONENT) { CalComponent *tmp_comp; + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (subcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (subcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, day_view->zone); /* FIXME: Need to set TZID. */ - icalcomponent_set_dtstart (icalcomp, itime); + icalcomponent_set_dtstart (subcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (subcomp, itime); uid = cal_component_gen_uid (); tmp_comp = cal_component_new (); @@ -6747,9 +6754,14 @@ selection_received (GtkWidget *invisible, } } else { + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (icalcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (icalcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, day_view->zone); /* FIXME: Need to set TZID. */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); comp = cal_component_new (); cal_component_set_icalcomponent (comp, icalcomp); diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index 2e5d2d72e6..c0b9d82a10 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -3591,6 +3591,8 @@ selection_received (GtkWidget *invisible, icalcomponent_kind kind; CalComponent *comp; char *uid; + time_t tt_start, tt_end; + struct icaldurationtype ic_dur; g_return_if_fail (E_IS_WEEK_VIEW (week_view)); @@ -3629,9 +3631,14 @@ selection_received (GtkWidget *invisible, child_kind == ICAL_VJOURNAL_COMPONENT) { CalComponent *tmp_comp; + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (subcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (subcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, week_view->zone); /* FIXME: Need to set TZID. */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); uid = cal_component_gen_uid (); tmp_comp = cal_component_new (); @@ -3658,9 +3665,14 @@ selection_received (GtkWidget *invisible, } } else { + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (icalcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (icalcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, week_view->zone); /* FIXME: need to set TZID */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); comp = cal_component_new (); cal_component_set_icalcomponent (comp, icalcomp); |