aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorChenthill Palanisamy <pchenthill@novell.com>2009-04-13 17:03:38 +0800
committerChenthill Palanisamy <pchen@src.gnome.org>2009-04-13 17:03:38 +0800
commit9896e4f7db7817087b7c18793682a4ab5f7c63e2 (patch)
tree54f2dc155338cba91fa82500cbb619f4024e7b46 /calendar/gui/dialogs
parent064ff85b3b8e06a5347b62e5c80c1273875e719a (diff)
downloadgsoc2013-evolution-9896e4f7db7817087b7c18793682a4ab5f7c63e2.tar.gz
gsoc2013-evolution-9896e4f7db7817087b7c18793682a4ab5f7c63e2.tar.zst
gsoc2013-evolution-9896e4f7db7817087b7c18793682a4ab5f7c63e2.zip
Fixes #561312
2009-04-13 Chenthill Palanisamy <pchenthill@novell.com> Fixes #561312 * calendar/gui/comp-util.c: * calendar/gui/comp-util.h: Added a new function to sanitize master recurrence event before modifying all instances. * calendar/gui/dialogs/comp-editor.c: * calendar/gui/e-day-view.c: * calendar/gui/e-week-view.c: Used the new util api. Do not invoke recurrence dialog while modifying detached instances. svn path=/trunk/; revision=37518
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 93ae0c6549..7a083a37a1 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -799,6 +799,11 @@ save_comp (CompEditor *editor)
if (result)
g_signal_emit_by_name (editor, "object_created");
} else {
+
+ if (e_cal_component_has_recurrences (priv->comp) && priv->mod == CALOBJ_MOD_ALL)
+ comp_util_sanitize_recurrence_master (priv->comp, priv->client);
+
+
if (priv->mod == CALOBJ_MOD_THIS) {
e_cal_component_set_rdate_list (priv->comp, NULL);
e_cal_component_set_rrule_list (priv->comp, NULL);
@@ -1159,11 +1164,15 @@ action_save_cb (GtkAction *action,
}
commit_all_fields (editor);
- if (e_cal_component_is_instance (priv->comp))
+ if (e_cal_component_has_recurrences (priv->comp)) {
if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor), delegated))
return;
+ } else if (e_cal_component_is_instance (priv->comp))
+ priv->mod = CALOBJ_MOD_THIS;
+
comp = comp_editor_get_current_comp (editor, &correct);
+
e_cal_component_get_summary (comp, &text);
g_object_unref (comp);