diff options
-rw-r--r-- | src/client/qwaylandinputdevice.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index 9ac678c9..567620ba 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -645,6 +645,13 @@ void QWaylandInputDevice::Keyboard::keyboard_key(uint32_t serial, uint32_t time, qtkey = QWaylandXkb::keysymToQtKey(sym, modifiers, text); + + // Map control + letter to proper text + if (utf32 >= 'A' && utf32 <= '~' && (modifiers & Qt::ControlModifier)) { + utf32 &= ~0x60; + text = QString::fromUcs4(&utf32, 1); + } + QWindowSystemInterface::handleExtendedKeyEvent(window->window(), time, type, qtkey, modifiers, |