aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog11
-rw-r--r--shell/e-shell.c2
-rw-r--r--shell/evolution-shell-component-client.c2
3 files changed, 14 insertions, 1 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 74736257ea..48b805372f 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,14 @@
+2002-05-22 Ettore Perazzoli <ettore@ximian.com>
+
+ * e-shell.c (e_shell_prepare_for_quit): Only refuse quitting if
+ the result is CANCEL. This way we allow quitting if one of the
+ components has crashed or something else otherwise goes wrong.
+ Fixes #25093.
+
+ * evolution-shell-component-client.c
+ (result_from_async_corba_result): Handle
+ GNOME_Evolution_ShellComponentListener_CANCEL.
+
2002-05-21 Christopher James Lahey <clahey@ximian.com>
* e-corba-storage.c (async_open_folder_idle): Do async_open_folder
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 3799a2b513..f2f41baa32 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -2200,7 +2200,7 @@ e_shell_prepare_for_quit (EShell *shell)
while (result == (GNOME_Evolution_ShellComponentListener_Result) -1)
gtk_main_iteration ();
- if (result != GNOME_Evolution_ShellComponentListener_OK) {
+ if (result == GNOME_Evolution_ShellComponentListener_CANCEL) {
retval = FALSE;
goto end;
}
diff --git a/shell/evolution-shell-component-client.c b/shell/evolution-shell-component-client.c
index 7b8051e0c1..6d97c6e241 100644
--- a/shell/evolution-shell-component-client.c
+++ b/shell/evolution-shell-component-client.c
@@ -159,6 +159,8 @@ result_from_async_corba_result (GNOME_Evolution_ShellComponentListener_Result as
switch (async_corba_result) {
case GNOME_Evolution_ShellComponentListener_OK:
return EVOLUTION_SHELL_COMPONENT_OK;
+ case GNOME_Evolution_ShellComponentListener_CANCEL:
+ return EVOLUTION_SHELL_COMPONENT_CANCEL;
case GNOME_Evolution_ShellComponentListener_UNSUPPORTED_OPERATION:
return EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDOPERATION;
case GNOME_Evolution_ShellComponentListener_EXISTS: