aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog6
-rw-r--r--shell/evolution-storage.c22
2 files changed, 11 insertions, 17 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 3f89a3575d..48bcbc8f6e 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,11 @@
2002-09-19 Ettore Perazzoli <ettore@ximian.com>
+ * evolution-storage.c (evolution_storage_update_folder): Do not
+ stop propagating the notification to the listeners if
+ ::notifyFolderUpdate() fails. [#27662 (?)]
+
+2002-09-19 Ettore Perazzoli <ettore@ximian.com>
+
* e-storage-set-view.c (resort): New.
(sort_idle_callback): Use it.
(insert_storages): Use resort() instead of queue_resort() so we
diff --git a/shell/evolution-storage.c b/shell/evolution-storage.c
index 2f55fbbae4..e5d63404ab 100644
--- a/shell/evolution-storage.c
+++ b/shell/evolution-storage.c
@@ -1154,9 +1154,8 @@ evolution_storage_update_folder (EvolutionStorage *evolution_storage,
{
EvolutionStorageResult result;
EvolutionStoragePrivate *priv;
- CORBA_Environment ev;
- GList *p;
GNOME_Evolution_Folder *corba_folder;
+ GList *p;
g_return_val_if_fail (evolution_storage != NULL,
EVOLUTION_STORAGE_ERROR_INVALIDPARAMETER);
@@ -1173,31 +1172,20 @@ evolution_storage_update_folder (EvolutionStorage *evolution_storage,
if (priv->corba_storage_listeners == NULL)
return EVOLUTION_STORAGE_ERROR_NOTREGISTERED;
- CORBA_exception_init (&ev);
-
result = EVOLUTION_STORAGE_OK;
for (p = priv->corba_storage_listeners; p != NULL; p = p->next) {
GNOME_Evolution_StorageListener listener;
+ CORBA_Environment ev;
+
+ CORBA_exception_init (&ev);
listener = p->data;
GNOME_Evolution_StorageListener_notifyFolderUpdated (listener, path, unread_count, &ev);
- if (ev._major == CORBA_NO_EXCEPTION)
- continue;
-
- if (ev._major != CORBA_USER_EXCEPTION)
- result = EVOLUTION_STORAGE_ERROR_CORBA;
- else if (strcmp (CORBA_exception_id (&ev), ex_GNOME_Evolution_StorageListener_NotFound) == 0)
- result = EVOLUTION_STORAGE_ERROR_NOTFOUND;
- else
- result = EVOLUTION_STORAGE_ERROR_GENERIC;
-
- break;
+ CORBA_exception_free (&ev);
}
- CORBA_exception_free (&ev);
-
if (result == EVOLUTION_STORAGE_OK) {
corba_folder = e_folder_tree_get_folder (priv->folder_tree, path);
if (corba_folder != NULL)