From 0cc08ff142621dac444d84be05bf9b6f4acd602b Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Fri, 6 Feb 2026 17:43:10 -0800 Subject: allow teleporting back after a goto --- state.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'state.lua') diff --git a/state.lua b/state.lua index 4d97fe3..27a7a01 100644 --- a/state.lua +++ b/state.lua @@ -49,6 +49,30 @@ function mt:push_menu(t) return menu end +function mt:capture_origin(d) + local m = self.menus[d] + return { + menus = util.copy_table(self.menus), + depth = self.depth, + div_depth = d, + div_cursor = m.cursor, + div_view_top = m.view_top, + div_sort_f = m.sort_f, + } +end + +function mt:restore_origin(t) + self.menus = t.menus + self.depth = t.depth + local m = self.menus[t.div_depth] + m.cursor = t.div_cursor + m.view_top = t.div_view_top + + if m.sort_f ~= t.div_sort_f then + m:set_sort(t.div_sort_f) + end +end + -- returns index if found function mt:favourited(id) for i, v in ipairs(self.favourites) do -- cgit v1.2.3-70-g09d2