static void resort_index (MUTTMENU *menu)
{
int i;
- const HEADER *current = CURHDR;
+ HEADER *current = CURHDR;
+ menu->current = -1;
mutt_sort_headers (Context, 0);
/* Restore the current message */
+
for (i = 0; i < Context->vcount; i++)
{
if (Context->hdrs[Context->v2r[i]] == current)
break;
}
}
+
+ if ((Sort & SORT_MASK) == SORT_THREADS && menu->current < 0)
+ menu->current = mutt_parent_message (Context, current);
+
+ if (menu->current < 0)
+ menu->current = ci_first_message ();
+
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
}
{
while ((hdr = hdr->parent))
{
- if (!ctx->pattern || hdr->limited)
+ if (hdr->virtual >= 0 && hdr->collapsed && (!ctx->pattern || hdr->limited))
return (hdr->virtual);
}
mutt_error _("Parent message is not visible in limited view");