aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/comp-editor.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs/comp-editor.c')
-rw-r--r--calendar/gui/dialogs/comp-editor.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 31fdf6f6b3..78505c2428 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -2626,14 +2626,17 @@ comp_editor_set_changed (CompEditor *editor,
g_return_if_fail (IS_COMP_EDITOR (editor));
- if ((editor->priv->changed ? 1 : 0) == (changed ? 1 : 0))
- return;
-
- editor->priv->changed = changed;
+ /* always process below changes, because other parts of
+ the editor listen for 'changed' notifications to update
+ its widgets, thus do it even the value actually didn't change
+ */
+ if ((editor->priv->changed ? 1 : 0) != (changed ? 1 : 0)) {
+ editor->priv->changed = changed;
- action = comp_editor_get_action (editor, "save");
- g_return_if_fail (action != NULL);
- gtk_action_set_sensitive (action, changed);
+ action = comp_editor_get_action (editor, "save");
+ g_return_if_fail (action != NULL);
+ gtk_action_set_sensitive (action, changed);
+ }
show_warning =
changed && !editor->priv->warned &&