diff options
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r-- | apps/tagtree.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c index b6d0c8ac06..19353cabbd 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c | |||
@@ -191,6 +191,10 @@ static int current_entry_count; | |||
191 | 191 | ||
192 | static struct tree_context *tc; | 192 | static struct tree_context *tc; |
193 | 193 | ||
194 | static int selected_item_history[MAX_DIR_LEVELS]; | ||
195 | static int table_history[MAX_DIR_LEVELS]; | ||
196 | static int extra_history[MAX_DIR_LEVELS]; | ||
197 | |||
194 | /* a few memory alloc helper */ | 198 | /* a few memory alloc helper */ |
195 | static int tagtree_handle; | 199 | static int tagtree_handle; |
196 | static size_t tagtree_bufsize, tagtree_buf_used; | 200 | static size_t tagtree_bufsize, tagtree_buf_used; |
@@ -1840,9 +1844,9 @@ int tagtree_enter(struct tree_context* c) | |||
1840 | if (c->dirlevel >= MAX_DIR_LEVELS) | 1844 | if (c->dirlevel >= MAX_DIR_LEVELS) |
1841 | return 0; | 1845 | return 0; |
1842 | 1846 | ||
1843 | c->selected_item_history[c->dirlevel]=c->selected_item; | 1847 | selected_item_history[c->dirlevel]=c->selected_item; |
1844 | c->table_history[c->dirlevel] = c->currtable; | 1848 | table_history[c->dirlevel] = c->currtable; |
1845 | c->extra_history[c->dirlevel] = c->currextra; | 1849 | extra_history[c->dirlevel] = c->currextra; |
1846 | c->pos_history[c->dirlevel] = c->firstpos; | 1850 | c->pos_history[c->dirlevel] = c->firstpos; |
1847 | c->dirlevel++; | 1851 | c->dirlevel++; |
1848 | 1852 | ||
@@ -1987,10 +1991,10 @@ void tagtree_exit(struct tree_context* c) | |||
1987 | c->dirfull = false; | 1991 | c->dirfull = false; |
1988 | if (c->dirlevel > 0) | 1992 | if (c->dirlevel > 0) |
1989 | c->dirlevel--; | 1993 | c->dirlevel--; |
1990 | c->selected_item=c->selected_item_history[c->dirlevel]; | 1994 | c->selected_item=selected_item_history[c->dirlevel]; |
1991 | gui_synclist_select_item(&tree_lists, c->selected_item); | 1995 | gui_synclist_select_item(&tree_lists, c->selected_item); |
1992 | c->currtable = c->table_history[c->dirlevel]; | 1996 | c->currtable = table_history[c->dirlevel]; |
1993 | c->currextra = c->extra_history[c->dirlevel]; | 1997 | c->currextra = extra_history[c->dirlevel]; |
1994 | c->firstpos = c->pos_history[c->dirlevel]; | 1998 | c->firstpos = c->pos_history[c->dirlevel]; |
1995 | } | 1999 | } |
1996 | 2000 | ||