aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-composer-actions.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2008-04-09 10:00:45 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2008-04-09 10:00:45 +0800
commit534e5a1764bdbeb542cf3531c2575df451d8e572 (patch)
treecf340bb3975698b2cf1dfd61ac9bf6b10805bbc3 /composer/e-composer-actions.c
parentfea1867db330edef4260cd057e1f73b61aacc6fa (diff)
downloadgsoc2013-evolution-534e5a1764bdbeb542cf3531c2575df451d8e572.tar.gz
gsoc2013-evolution-534e5a1764bdbeb542cf3531c2575df451d8e572.tar.zst
gsoc2013-evolution-534e5a1764bdbeb542cf3531c2575df451d8e572.zip
** Fixes bug #523413
2008-04-08 Matthew Barnes <mbarnes@redhat.com> ** Fixes bug #523413 * composer/e-msg-composer.c (msg_composer_dispose): Use the 'application_exiting' private flag to determine whether to tell e_composer_autosave_unregister() to delete the autosave file. * composer/e-msg-composer.c (msg_composer_class_init), (e_msg_composer_save_draft): Remove the 'quit' parameter from the 'save-draft' signal. * composer/e-msg-composer.c (e_msg_composer_request_close_all): Take an autosave snapshot before activating the CLOSE action, and set the private 'application_exiting' flag. This should avoid prompting the user before shutting down. * composer/e-composer-actions.c (action_close_cb): When electing to save a message before closing, hide the window immediately. The callback function can then check the window's visibility after the save is complete to know whether to destroy the window. * composer/e-composer-autosave.c (e_composer_autosave_unregister): Add a 'delete_file' boolean parameter to determine whether to delete the autosave file. * composer/e-composer-private.h: Add an 'application_exiting' flag. * mail/em-composer-utils.c (save_draft_done): Check the composer window's visibility to determine whether to destroy the window. See the corresponding composer/ChangeLog entry to get the full story. * mail/em-composer-utils.c (em_utils_composer_save_draft_cb): Remove the 'quit' parameter. svn path=/trunk/; revision=35346
Diffstat (limited to 'composer/e-composer-actions.c')
-rw-r--r--composer/e-composer-actions.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/composer/e-composer-actions.c b/composer/e-composer-actions.c
index aeae508153..ecf7e84346 100644
--- a/composer/e-composer-actions.c
+++ b/composer/e-composer-actions.c
@@ -119,19 +119,21 @@ action_close_cb (GtkAction *action,
{
GtkhtmlEditor *editor;
EComposerHeaderTable *table;
+ GtkWidget *widget;
const gchar *subject;
gint response;
editor = GTKHTML_EDITOR (composer);
+ widget = GTK_WIDGET (composer);
if (!gtkhtml_editor_get_changed (editor) &&
e_composer_autosave_get_saved (composer)) {
- gtk_widget_destroy (GTK_WIDGET (composer));
+ gtk_widget_destroy (widget);
return;
}
- gdk_window_raise (GTK_WIDGET (composer)->window);
+ gdk_window_raise (widget->window);
table = e_msg_composer_get_header_table (composer);
subject = e_composer_header_table_get_subject (table);
@@ -146,11 +148,12 @@ action_close_cb (GtkAction *action,
switch (response) {
case GTK_RESPONSE_YES:
+ gtk_widget_hide (widget);
gtk_action_activate (ACTION (SAVE_DRAFT));
break;
case GTK_RESPONSE_NO:
- gtk_widget_destroy (GTK_WIDGET (composer));
+ gtk_widget_destroy (widget);
break;
case GTK_RESPONSE_CANCEL: