diff options
Diffstat (limited to 'calendar/gui/dialogs/comp-editor.c')
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 17 |
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 && |