--- evolution-2.28.3/shell/e-shell.c 2009-07-13 03:45:14.000000000 -0400 +++ evolution-2.28.3.mod/shell/e-shell.c 2010-04-09 15:19:50.429422119 -0400 @@ -948,7 +948,6 @@ e_shell_create_window (EShell *shell, if (!session_started) { ESEvent *ese; - session_started = TRUE; ese = es_event_peek(); e_event_emit((EEvent *)ese, "started.done", (EEventTarget *)es_event_target_new_shell(ese, shell)); @@ -960,11 +959,17 @@ gboolean e_shell_request_close_window (EShell *shell, EShellWindow *shell_window) { + ESEvent *ese; + g_return_val_if_fail (E_IS_SHELL (shell), FALSE); g_return_val_if_fail (E_IS_SHELL_WINDOW (shell_window), FALSE); e_shell_save_settings (shell); + ese = es_event_peek(); + e_event_emit((EEvent *)ese, "closing.window", + (EEventTarget *)es_event_target_new_shell(ese, shell)); + if (g_list_length (shell->priv->windows) != 1) { /* Not the last window. */ return TRUE;