From bffa397f68724773088ddba4dc127ed864bf236d Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Thu, 25 Mar 2021 07:50:25 +0900 Subject: [PATCH] Client: Allow inheritance of key translation Use a virtual method keysymToQtKey for Qt key code translation, so that it can be customized by a descendant class if needed. Change-Id: I3b48346a63e2c6f134230fe15279faa95abe11a0 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/platforms/wayland/qwaylandinputdevice.cpp | 2 +- src/plugins/platforms/wayland/qwaylandinputdevice_p.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp index 4a046a134ee..3304b9118b6 100644 --- a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp +++ b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp @@ -1268,7 +1268,7 @@ void QWaylandInputDevice::Keyboard::keyboard_key(uint32_t serial, uint32_t time, Qt::KeyboardModifiers modifiers = mParent->modifiers(); - int qtkey = QXkbCommon::keysymToQtKey(sym, modifiers, mXkbState.get(), code); + int qtkey = keysymToQtKey(sym, modifiers, mXkbState.get(), code); QString text = QXkbCommon::lookupString(mXkbState.get(), code); QEvent::Type type = isDown ? QEvent::KeyPress : QEvent::KeyRelease; diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice_p.h b/src/plugins/platforms/wayland/qwaylandinputdevice_p.h index b23de1f422c..4a216bc4344 100644 --- a/src/plugins/platforms/wayland/qwaylandinputdevice_p.h +++ b/src/plugins/platforms/wayland/qwaylandinputdevice_p.h @@ -263,6 +263,12 @@ public: struct ::wl_keyboard *wl_keyboard() { return QtWayland::wl_keyboard::object(); } +#if QT_CONFIG(xkbcommon) + virtual int keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers modifiers, xkb_state *state, xkb_keycode_t code) { + return QXkbCommon::keysymToQtKey(keysym, modifiers, state, code); + } +#endif + private slots: void handleFocusDestroyed(); void handleFocusLost();