diff options
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r-- | shell/e-shell.c | 14 |
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) { |