diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-08-18 00:49:03 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-08-18 00:49:03 +0800 |
commit | 18f8381651b229b6170bb425e63111954e35603f (patch) | |
tree | 02d2209869fa16a34a320f185dba0b9145fad720 | |
parent | 084974a617b9edf5e53a483e9de15687a8fe6a33 (diff) | |
download | gsoc2013-evolution-18f8381651b229b6170bb425e63111954e35603f.tar.gz gsoc2013-evolution-18f8381651b229b6170bb425e63111954e35603f.tar.zst gsoc2013-evolution-18f8381651b229b6170bb425e63111954e35603f.zip |
folder_tree_model_folder_renamed_cb: Avoid duplicate rows.
Testing IMAP NOTIFY and folder renames, I observed a "folder-created"
signal emission before the "folder-renamed" signal emission. So the
renamed folder already exists in the tree model when we receive the
"folder-renamed" signal. Make sure we handle that sanely.
-rw-r--r-- | mail/em-folder-tree-model.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index 66f292695b..a7039f28d1 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -1049,6 +1049,11 @@ folder_tree_model_folder_renamed_cb (CamelStore *store, em_folder_tree_model_remove_folders (model, si, &iter); + /* Make sure we don't already have the new folder name. */ + reference = g_hash_table_lookup (si->full_hash, info->full_name); + if (gtk_tree_row_reference_valid (reference)) + return; + parent = g_strdup (info->full_name); p = strrchr (parent, '/'); if (p) |