summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2025-05-07 20:46:34 -0700
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2025-05-07 20:46:34 -0700
commit716beb723017a968fe8092c55c3bf893ecc2cf5b (patch)
tree17719dee506141dce2f77afeafe622808f8036ae
parent540cf7e09e7a2281ac2f2f6f9fb05dc850969382 (diff)
downloadmpv-iptv-menu-716beb723017a968fe8092c55c3bf893ecc2cf5b.tar.gz
mpv-iptv-menu-716beb723017a968fe8092c55c3bf893ecc2cf5b.tar.xz
support Ctrl-a/Ctrl-e to move search cursor
-rw-r--r--main.lua26
1 files changed, 17 insertions, 9 deletions
diff --git a/main.lua b/main.lua
index 13d38a4..aab0767 100644
--- a/main.lua
+++ b/main.lua
@@ -319,26 +319,32 @@ local function search_delete()
search_update()
end
-local function search_cursor_left()
+local function search_cursor_set_pos(pos)
local menu = menus[depth]
- if menu.search_text_cursor_pos == 1 then
+ local pos = math.max(1, math.min(#menu.search_text + 1, pos))
+ if pos == menu.search_text_cursor_pos then
return
end
- menu.search_text_cursor_pos = menu.search_text_cursor_pos - 1
+ menu.search_text_cursor_pos = pos
search_update_osd()
end
+local function search_cursor_left()
+ search_cursor_set_pos(menus[depth].search_text_cursor_pos - 1)
+end
+
local function search_cursor_right()
- local menu = menus[depth]
+ search_cursor_set_pos(menus[depth].search_text_cursor_pos + 1)
+end
- if menu.search_text_cursor_pos == #menu.search_text + 1 then
- return
- end
+local function search_cursor_start()
+ search_cursor_set_pos(1)
+end
- menu.search_text_cursor_pos = menu.search_text_cursor_pos + 1
- search_update_osd()
+local function search_cursor_end()
+ search_cursor_set_pos(#menus[depth].search_text + 1)
end
local bind_search_keys
@@ -393,6 +399,8 @@ function bind_search_keys()
bind_key('DEL', 'search-delete', search_delete, r)
bind_key('LEFT', 'search-cursor-left', search_cursor_left, r)
bind_key('RIGHT', 'search-cursor-right', search_cursor_right, r)
+ bind_key('Ctrl+a', 'search-cursor-start', search_cursor_start)
+ bind_key('Ctrl+e', 'search-cursor-end', search_cursor_end)
end
function bind_menu_keys()