summaryrefslogtreecommitdiff
path: root/state.lua
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2026-01-31 02:40:00 -0800
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2026-01-31 02:40:00 -0800
commit925aa695b437325d48abc484f2769c6787ebf3f5 (patch)
treee39c85a5dcea42ec4dd02a53f1a1361b053a89cc /state.lua
parent769bcb2bc0d52479df609ac075356431285da103 (diff)
downloadmpv-iptv-menu-925aa695b437325d48abc484f2769c6787ebf3f5.tar.gz
mpv-iptv-menu-925aa695b437325d48abc484f2769c6787ebf3f5.tar.xz
use menu metatable for saving/restoring search state
Diffstat (limited to 'state.lua')
-rw-r--r--state.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/state.lua b/state.lua
index 326fa28..3abb892 100644
--- a/state.lua
+++ b/state.lua
@@ -82,6 +82,21 @@ function mt:insert_favourite_before_next_in_menu(id)
self:add_favourite(id)
end
+function menu_mt:save_checkpoint()
+ self.checkpoint = {
+ search_text = self.search_text,
+ cursor = self.cursor,
+ view_top = self.view_top,
+ }
+end
+
+function menu_mt:restore_checkpoint()
+ local t = self.checkpoint
+ self:set_search_text(t.search_text)
+ self.cursor = t.cursor
+ self.view_top = t.view_top
+end
+
function menu_mt:set_cursor(pos, lines, opts)
local pos = math.max(1, math.min(pos, #self.options))
local top = self.view_top