changeset 22706:6ea402d0c650

LAYOUT=Maildir++: List INBOX as \NoInferiors when necessary
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 14 Dec 2017 01:23:45 +0200
parents f9b676b1b028
children 42e50736aac0
files src/lib-storage/list/mailbox-list-maildir-iter.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/list/mailbox-list-maildir-iter.c	Thu Dec 14 01:23:01 2017 +0200
+++ b/src/lib-storage/list/mailbox-list-maildir-iter.c	Thu Dec 14 01:23:45 2017 +0200
@@ -505,6 +505,12 @@
 		return mailbox_list_iter_default_next(_ctx);
 
 	ctx->info.flags = node->flags;
+	if (strcmp(ctx->info.vname, "INBOX") == 0 &&
+	    mail_namespace_is_inbox_noinferiors(ctx->info.ns)) {
+		i_assert((ctx->info.flags & MAILBOX_NOCHILDREN) != 0);
+		ctx->info.flags &= ~MAILBOX_NOCHILDREN;
+		ctx->info.flags |= MAILBOX_NOINFERIORS;
+	}
 	if ((_ctx->flags & MAILBOX_LIST_ITER_RETURN_SUBSCRIBED) != 0 &&
 	    (_ctx->flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) == 0) {
 		/* we're listing all mailboxes but we want to know