support for num pad
It'll only work after LÖVE v12 comes out.
This commit is contained in:
parent
33934337ab
commit
9df1c3f997
37
keychord.lua
37
keychord.lua
|
@ -12,6 +12,11 @@ function App.keypressed(key, scancode, isrepeat)
|
||||||
end
|
end
|
||||||
|
|
||||||
function App.combine_modifiers(key)
|
function App.combine_modifiers(key)
|
||||||
|
if love.keyboard.isModifierActive then -- waiting for LÖVE v12
|
||||||
|
if key:match('^kp') then
|
||||||
|
key = App.translate_numlock(key)
|
||||||
|
end
|
||||||
|
end
|
||||||
local result = ''
|
local result = ''
|
||||||
if App.ctrl_down() then
|
if App.ctrl_down() then
|
||||||
result = result..'C-'
|
result = result..'C-'
|
||||||
|
@ -53,6 +58,38 @@ function App.is_cursor_movement(key)
|
||||||
return array.find({'left', 'right', 'up', 'down', 'home', 'end', 'pageup', 'pagedown'}, key)
|
return array.find({'left', 'right', 'up', 'down', 'home', 'end', 'pageup', 'pagedown'}, key)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- mappings only to non-printable keys; leave out mappings that textinput will handle
|
||||||
|
Numlock_off = {
|
||||||
|
kp0='insert',
|
||||||
|
kp1='end',
|
||||||
|
kp2='down',
|
||||||
|
kp3='pagedown',
|
||||||
|
kp4='left',
|
||||||
|
-- numpad 5 translates to nothing
|
||||||
|
kp6='right',
|
||||||
|
kp7='home',
|
||||||
|
kp8='up',
|
||||||
|
kp9='pageup',
|
||||||
|
['kp.']='delete',
|
||||||
|
-- LÖVE handles keypad operators in textinput
|
||||||
|
-- what's with the `kp=` and `kp,` keys? None of my keyboards have one.
|
||||||
|
-- Hopefully LÖVE handles them as well in textinput.
|
||||||
|
kpenter='enter',
|
||||||
|
kpdel='delete',
|
||||||
|
}
|
||||||
|
Numlock_on = {
|
||||||
|
kpenter='enter',
|
||||||
|
kpdel='delete',
|
||||||
|
}
|
||||||
|
function App.translate_numlock(key)
|
||||||
|
if love.keyboard.isModifierActive('numlock') then
|
||||||
|
return Numlock_on[key] or key
|
||||||
|
else
|
||||||
|
return Numlock_off[key] or key
|
||||||
|
end
|
||||||
|
return key
|
||||||
|
end
|
||||||
|
|
||||||
array = {}
|
array = {}
|
||||||
|
|
||||||
function array.find(arr, elem)
|
function array.find(arr, elem)
|
||||||
|
|
Loading…
Reference in New Issue