diff options
Diffstat (limited to 'shell/e-corba-storage.c')
-rw-r--r-- | shell/e-corba-storage.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/shell/e-corba-storage.c b/shell/e-corba-storage.c index 4f5ca6dc1b..31e8c424f1 100644 --- a/shell/e-corba-storage.c +++ b/shell/e-corba-storage.c @@ -351,8 +351,10 @@ async_create_folder (EStorage *storage, const char *path, } static void -async_remove_folder (EStorage *storage, const char *path, - EStorageResultCallback callback, void *data) +async_remove_folder (EStorage *storage, + const char *path, + EStorageResultCallback callback, + void *data) { ECorbaStorage *corba_storage; ECorbaStoragePrivate *priv; @@ -366,8 +368,14 @@ async_remove_folder (EStorage *storage, const char *path, priv = corba_storage->priv; folder = e_storage_get_folder (storage, path); - if (e_folder_get_is_stock (folder)) + if (e_folder_get_is_stock (folder)) { (* callback) (storage, E_STORAGE_CANTCHANGESTOCKFOLDER, data); + return; + } + if (e_folder_get_physical_uri (folder) == NULL) { + (* callback) (storage, E_STORAGE_GENERICERROR, data); + return; + } closure = g_new (struct async_folder_closure, 1); closure->callback = callback; |