diff options
author | Sivaiah Nallagatla <snallagatla@novell.com> | 2005-02-22 08:58:15 +0800 |
---|---|---|
committer | Sivaiah Nallagatla <siva@src.gnome.org> | 2005-02-22 08:58:15 +0800 |
commit | 956ec9c13e4da1954d6506fde84806954792f1c1 (patch) | |
tree | fbcce15c4a0209ba26df4269517dc297a8a39d78 /addressbook/gui | |
parent | e5711b4dd2f7bc084d453cba8d78e7b656a40a67 (diff) | |
download | gsoc2013-evolution-956ec9c13e4da1954d6506fde84806954792f1c1.tar.gz gsoc2013-evolution-956ec9c13e4da1954d6506fde84806954792f1c1.tar.zst gsoc2013-evolution-956ec9c13e4da1954d6506fde84806954792f1c1.zip |
close the editor here in case of save and discard so that callers need not
2005-02-19 Sivaiah Nallagatla <snallagatla@novell.com>
* gui/contact-editor/eab-editor.c
(eab_editor_prompt_to_save_changes) : close
the editor here in case of save and discard
so that callers need not worry about closing
* gui/contact-list-editor/e-contact-list-editor.c
(closed_cb) (app_delete_event_cb) : don't close
the editor here as that is handled by _save_changes
call. Also no need to check for return value of that
function as it does not matter here.
Fixes #70371
svn path=/trunk/; revision=28839
Diffstat (limited to 'addressbook/gui')
-rw-r--r-- | addressbook/gui/contact-editor/eab-editor.c | 9 | ||||
-rw-r--r-- | addressbook/gui/contact-list-editor/e-contact-list-editor.c | 10 |
2 files changed, 9 insertions, 10 deletions
diff --git a/addressbook/gui/contact-editor/eab-editor.c b/addressbook/gui/contact-editor/eab-editor.c index 4f535e47c8..278f8a4c3f 100644 --- a/addressbook/gui/contact-editor/eab-editor.c +++ b/addressbook/gui/contact-editor/eab-editor.c @@ -250,7 +250,11 @@ eab_editor_get_window (EABEditor *editor) else return NULL; } - +/* This function prompts for saving if editor conents are in changed state and + save or discards or cancels(just returns with out doing anything) according to user input. + Editor gets destoryed in case of save and discard case. + */ + gboolean eab_editor_prompt_to_save_changes (EABEditor *editor, GtkWindow *window) { @@ -262,9 +266,10 @@ eab_editor_prompt_to_save_changes (EABEditor *editor, GtkWindow *window) if (!eab_editor_is_valid (editor)) { return FALSE; } - eab_editor_save_contact (editor, FALSE); + eab_editor_save_contact (editor, TRUE); return TRUE; case GTK_RESPONSE_NO: + eab_editor_close (EAB_EDITOR (editor)); return TRUE; case GTK_RESPONSE_CANCEL: default: diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index 7cbf1d8dff..c4a5acd170 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -470,10 +470,7 @@ e_contact_list_editor_get_window (EABEditor *editor) static void close_cb (GtkWidget *widget, EContactListEditor *cle) { - if (!eab_editor_prompt_to_save_changes (EAB_EDITOR (cle), GTK_WINDOW (cle->app))) - return; - - eab_editor_close (EAB_EDITOR (cle)); + eab_editor_prompt_to_save_changes (EAB_EDITOR (cle), GTK_WINDOW (cle->app)); } static void @@ -864,10 +861,7 @@ app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data) if (ce->in_async_call) return TRUE; - if (!eab_editor_prompt_to_save_changes (EAB_EDITOR (ce), GTK_WINDOW (ce->app))) - return TRUE; - - eab_editor_close (EAB_EDITOR (ce)); + eab_editor_prompt_to_save_changes (EAB_EDITOR (ce), GTK_WINDOW (ce->app)); return TRUE; } |