From c395aaafd6c16e5b35c681db650dcc91eea78a70 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Tue, 17 Sep 2002 16:23:45 +0000 Subject: (e_storage_removed_folder): When a highlighted folder gets removed, update the parent to not have a highlight. [#24062] svn path=/trunk/; revision=18085 --- shell/e-storage.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'shell/e-storage.c') diff --git a/shell/e-storage.c b/shell/e-storage.c index 5983f7c535..8db704883b 100644 --- a/shell/e-storage.c +++ b/shell/e-storage.c @@ -683,6 +683,8 @@ e_storage_removed_folder (EStorage *storage, const char *path) { EStoragePrivate *priv; + EFolder *folder; + const char *p; g_return_val_if_fail (storage != NULL, FALSE); g_return_val_if_fail (E_IS_STORAGE (storage), FALSE); @@ -691,9 +693,24 @@ e_storage_removed_folder (EStorage *storage, priv = storage->priv; - if (e_folder_tree_get_folder (priv->folder_tree, path) == NULL) + folder = e_folder_tree_get_folder (priv->folder_tree, path); + if (folder == NULL) return FALSE; + p = strrchr (path, '/'); + if (p != NULL && p != path) { + EFolder *parent_folder; + char *parent_path; + + parent_path = g_strndup (path, p - path); + parent_folder = e_folder_tree_get_folder (priv->folder_tree, parent_path); + + if (e_folder_get_highlighted (folder)) + e_folder_set_child_highlight (parent_folder, FALSE); + + g_free (parent_path); + } + gtk_signal_emit (GTK_OBJECT (storage), signals[REMOVED_FOLDER], path); e_folder_tree_remove (priv->folder_tree, path); -- cgit v1.2.3