summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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);
+ }
+ }
}
}