Fix numpad handling and add entries for numpad 5
KP_Clear is mapped from numpad 5 on non-Apple keyboards according to Qt doc [1]. It's mapped from KP_Begin from XKB on X11. Tests: with numlock off, numpad 5 => "\e[OE" Ctrl + numpad 5 => "\e[1;5E" Alt + numpad 5 => "\e[1;3E" Shift + numpad 5 => "5" These results are the same as VTE3 0.56.3. On xterm 346, Shift + numpad 5 generates "\eO2u". However, Qt returns 5 instead of KP_Clear if Shift is hold even with numlock off, so implementing Shift + numpad 5 might be rather complicated. As a side note, shifted keypad sequences can be found in emacs sources [2]. Note that on Wayfire (wlroots-based Wayland compositor), numpad 5 with numlock off generates an event without Qt::KeypadModifier. Further investigation needed. Ref: https://github.com/lxqt/qtermwidget/issues/117 [1] https://doc.qt.io/qt-5/qt.html#Key-enum [2] https://github.com/emacs-mirror/emacs/blame/master/lisp/term/xterm.el
This commit is contained in:
@@ -632,7 +632,7 @@ bool KeyboardTranslator::Entry::matches(int keyCode ,
|
||||
return false;
|
||||
|
||||
// if modifiers is non-zero, the 'any modifier' state is implicit
|
||||
if ( modifiers != 0 )
|
||||
if ( (modifiers & ~Qt::KeypadModifier) != 0 )
|
||||
testState |= AnyModifierState;
|
||||
|
||||
if ( (testState & _stateMask) != (_state & _stateMask) )
|
||||
|
||||
Reference in New Issue
Block a user