aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-10-24 06:00:39 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-10-24 06:00:39 +0800
commit856e3689fbc785f1a7a9c0b5c3484052359a5eff (patch)
tree68c45510b302a46e974ce87dae4ee711f7d24a71 /shell/e-shell.c
parent46dd4414b9aae78bd569810238fa5106307a83eb (diff)
downloadgsoc2013-evolution-856e3689fbc785f1a7a9c0b5c3484052359a5eff.tar.gz
gsoc2013-evolution-856e3689fbc785f1a7a9c0b5c3484052359a5eff.tar.zst
gsoc2013-evolution-856e3689fbc785f1a7a9c0b5c3484052359a5eff.zip
Explicitly deactivate the control frame, and display the default URI
* e-shell-view.c (storage_set_removed_folder_callback): Explicitly deactivate the control frame, and display the default URI before destroying the dead one. * e-shell.c (e_shell_component_maybe_crashed): If the URI is of a folder that doesn't exist anymore, don't assume that the corresponding component has crashed. Also, try pinging the component first; if the component responds, don't pop up the dialog. svn path=/trunk/; revision=13960
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 0b746c8589..bfce4e473a 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -1607,6 +1607,7 @@ e_shell_component_maybe_crashed (EShell *shell,
{
EShellPrivate *priv;
GtkWindow *parent_window;
+ EvolutionShellComponentClient *component;
GList *p;
g_return_if_fail (shell != NULL);
@@ -1617,6 +1618,19 @@ e_shell_component_maybe_crashed (EShell *shell,
priv = shell->priv;
+ if (strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0) {
+ const char *path;
+
+ path = uri + E_SHELL_URI_PREFIX_LEN;
+ if (e_storage_set_get_folder (priv->storage_set, path) == NULL)
+ return;
+ }
+
+ component = e_folder_type_registry_get_handler_for_type (priv->folder_type_registry, type_name);
+ if (component != NULL
+ && bonobo_unknown_ping (bonobo_object_corba_objref (BONOBO_OBJECT (component))))
+ return;
+
/* See if that type has caused a crash already. */
for (p = priv->crash_type_names; p != NULL; p = p->next) {