diff options
-rw-r--r-- | main.lua | 26 |
1 files changed, 17 insertions, 9 deletions
@@ -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() |