diff options
Diffstat (limited to 'main.lua')
-rw-r--r-- | main.lua | 44 |
1 files changed, 37 insertions, 7 deletions
@@ -126,12 +126,42 @@ function handle_backspace() update_osd() end -local repeatable = {repeatable=true} -mp.add_forced_key_binding('UP', 'up', handle_up, repeatable) -mp.add_forced_key_binding('DOWN', 'down', handle_down, repeatable) -mp.add_forced_key_binding('PGUP', 'page_up', handle_page_up, repeatable) -mp.add_forced_key_binding('PGDWN', 'page_down', handle_page_down, repeatable) -mp.add_forced_key_binding('ENTER', 'enter', handle_enter) -mp.add_forced_key_binding('BS', 'backspace', handle_backspace) +function toggle_menu() + osd.hidden = not osd.hidden + osd:update() + + if osd.hidden then + unbind_keys() + else + bind_keys() + end +end + +local key_bindings = {} + +function bind_key(key, func, opts) + key_bindings[#key_bindings+1] = key + mp.add_forced_key_binding(key, key, func, opts) +end + +function unbind_keys() + for _, key in ipairs(key_bindings) do + mp.remove_key_binding(key) + end + key_bindings = {} +end + +function bind_keys() + local repeatable = {repeatable=true} + bind_key('UP', handle_up, repeatable) + bind_key('DOWN', handle_down, repeatable) + bind_key('PGUP', handle_page_up, repeatable) + bind_key('PGDWN', handle_page_down, repeatable) + bind_key('ENTER', handle_enter) + bind_key('BS', handle_backspace) +end + +mp.add_forced_key_binding('TAB', 'toggle-menu', toggle_menu) +bind_keys() update_osd() |