summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2019-08-02 12:34:49 +0200
committerMilan Crha <mcrha@redhat.com>2019-08-02 12:34:49 +0200
commit6989cd719226a6d3d68a63612d4f318fabd3eba0 (patch)
tree13325ae839a2f271937a504da5a382c87124b4fc
parentd725a3e7309cea9dbe3d3835c5b95352977a393c (diff)
downloadevolution-data-server-6989cd719226a6d3d68a63612d4f318fabd3eba0.tar.gz
Let the message-location check also real message location in the search folders
This helps to filter on message location in search folders, which have other search folders as source folders, by referencing the real folder of the respective message. Related to https://gitlab.gnome.org/GNOME/evolution/issues/548
-rw-r--r--src/camel/camel-folder-search.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/camel/camel-folder-search.c b/src/camel/camel-folder-search.c
index e240caa2b..3dee2ac7b 100644
--- a/src/camel/camel-folder-search.c
+++ b/src/camel/camel-folder-search.c
@@ -1697,6 +1697,24 @@ folder_search_message_location (CamelSExp *sexp,
same = g_str_equal (uri, argv[0]->value.string);
g_free (uri);
+
+ if (!same && search->priv->current &&
+ CAMEL_IS_VEE_FOLDER (search->priv->folder)) {
+ CamelFolder *folder;
+
+ folder = camel_vee_folder_get_location (CAMEL_VEE_FOLDER (search->priv->folder),
+ (CamelVeeMessageInfo *) search->priv->current, NULL);
+
+ if (folder) {
+ store = camel_folder_get_parent_store (folder);
+ name = camel_folder_get_full_name (folder);
+ uri = mail_folder_uri_build (store, name);
+
+ same = g_str_equal (uri, argv[0]->value.string);
+
+ g_free (uri);
+ }
+ }
}
}