QXkbCommon: set Qt::KeypadModifier when keypad button is pressed
Pick-to: 6.5 Task-number: QTBUG-111503 Done-With: Liang Qi <liang.qi@qt.io> Change-Id: Ic7ca48ea8709d38aa83c95a9b5a7d39ff82f08c7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>bb10
parent
936fe007ee
commit
298c950912
|
|
@ -562,7 +562,7 @@ static int keysymToQtKey_internal(xkb_keysym_t keysym, Qt::KeyboardModifiers mod
|
|||
return qtKey;
|
||||
}
|
||||
|
||||
Qt::KeyboardModifiers QXkbCommon::modifiers(struct xkb_state *state)
|
||||
Qt::KeyboardModifiers QXkbCommon::modifiers(struct xkb_state *state, xkb_keysym_t keysym)
|
||||
{
|
||||
Qt::KeyboardModifiers modifiers = Qt::NoModifier;
|
||||
|
||||
|
|
@ -575,6 +575,9 @@ Qt::KeyboardModifiers QXkbCommon::modifiers(struct xkb_state *state)
|
|||
if (xkb_state_mod_name_is_active(state, XKB_MOD_NAME_LOGO, XKB_STATE_MODS_EFFECTIVE) > 0)
|
||||
modifiers |= Qt::MetaModifier;
|
||||
|
||||
if (keysym >= XKB_KEY_KP_Space && keysym <= XKB_KEY_KP_9)
|
||||
modifiers |= Qt::KeypadModifier;
|
||||
|
||||
return modifiers;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public:
|
|||
static void xkbcommon_XConvertCase(xkb_keysym_t sym, xkb_keysym_t *lower, xkb_keysym_t *upper);
|
||||
static xkb_keysym_t qxkbcommon_xkb_keysym_to_upper(xkb_keysym_t ks);
|
||||
|
||||
static Qt::KeyboardModifiers modifiers(struct xkb_state *state);
|
||||
static Qt::KeyboardModifiers modifiers(struct xkb_state *state, xkb_keysym_t keysym = XKB_KEY_VoidSymbol);
|
||||
|
||||
static QList<int> possibleKeys(xkb_state *state, const QKeyEvent *event,
|
||||
bool superAsMeta = false, bool hyperAsMeta = false);
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ void QLibInputKeyboard::processKey(libinput_event_keyboard *e)
|
|||
|
||||
xkb_state_update_key(m_state, keycode, pressed ? XKB_KEY_DOWN : XKB_KEY_UP);
|
||||
|
||||
Qt::KeyboardModifiers modifiersAfterStateChange = QXkbCommon::modifiers(m_state);
|
||||
Qt::KeyboardModifiers modifiersAfterStateChange = QXkbCommon::modifiers(m_state, sym);
|
||||
QGuiApplicationPrivate::inputDeviceManager()->setKeyboardModifiers(modifiersAfterStateChange);
|
||||
|
||||
QWindowSystemInterface::handleExtendedKeyEvent(nullptr,
|
||||
|
|
|
|||
Loading…
Reference in New Issue