diff options
-rw-r--r-- | apps/tagtree.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c index 7887ee1c36..03af5fc83a 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c | |||
@@ -2035,12 +2035,16 @@ int tagtree_enter(struct tree_context* c, bool is_visible) | |||
2035 | void tagtree_exit(struct tree_context* c, bool is_visible) | 2035 | void tagtree_exit(struct tree_context* c, bool is_visible) |
2036 | { | 2036 | { |
2037 | if (is_visible) /* update selection history only for user-selected items */ | 2037 | if (is_visible) /* update selection history only for user-selected items */ |
2038 | { | ||
2039 | if (c->selected_item != selected_item_history[c->dirlevel]) | ||
2040 | max_history_level = c->dirlevel; /* discard descending item history */ | ||
2038 | selected_item_history[c->dirlevel] = c->selected_item; | 2041 | selected_item_history[c->dirlevel] = c->selected_item; |
2042 | } | ||
2039 | c->dirfull = false; | 2043 | c->dirfull = false; |
2040 | if (c->dirlevel > 0) | 2044 | if (c->dirlevel > 0) |
2041 | c->dirlevel--; | 2045 | c->dirlevel--; |
2042 | if (is_visible) | 2046 | if (is_visible) |
2043 | c->selected_item=selected_item_history[c->dirlevel]; | 2047 | c->selected_item = selected_item_history[c->dirlevel]; |
2044 | c->currtable = table_history[c->dirlevel]; | 2048 | c->currtable = table_history[c->dirlevel]; |
2045 | c->currextra = extra_history[c->dirlevel]; | 2049 | c->currextra = extra_history[c->dirlevel]; |
2046 | } | 2050 | } |