From f659cfd6e38ad9dffad856f96d9406b83eb3aaa1 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 7 Feb 2020 13:51:25 +0100 Subject: console: manually map numeric keypad (KP*) bindings While mpv normally uses the text a key produces (as opposed to physical key mappings), this is different with the keypad. This is for the sake of making it possible to distinguish between these keys and the normal number keys on the left side of a full size keyboard. There were complaints that the keypad doesn't interact with console.lua, so manually map them. This ignores numlock (behaves as if it's always on), and maps KP_DEC to "." (even though it's mapped to "," on some keyboards). The /*-+ keys produce ASCII on mpv (at least with X11) as an inexplicable inconsistency, so there are no mappings for these. Fixes: #7431 --- player/lua/console.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/player/lua/console.lua b/player/lua/console.lua index d026d4e528..3a263d6e45 100644 --- a/player/lua/console.lua +++ b/player/lua/console.lua @@ -653,6 +653,7 @@ end local bindings = { { 'esc', function() set_active(false) end }, { 'enter', handle_enter }, + { 'kp_enter', hanmdle_enter }, { 'shift+enter', function() handle_char_input('\n') end }, { 'bs', handle_backspace }, { 'shift+bs', handle_backspace }, @@ -684,8 +685,14 @@ local bindings = { { 'ctrl+v', function() paste(true) end }, { 'meta+v', function() paste(true) end }, { 'ctrl+w', del_word }, + { 'kp_dec', function() handle_char_input('.') end }, } +for i = 0, 9 do + bindings[#bindings + 1] = + {'kp' .. i, function() handle_char_input('' .. i) end} +end + local function text_input(info) if info.key_text and (info.event == "press" or info.event == "down" or info.event == "repeat") -- cgit v1.2.3