From 4446f4571a712af0deda574d3d0e1285c9b84a2a Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Fri, 8 Mar 2024 10:20:10 +0100 Subject: [PATCH] client: use current modifiers in repeat keys This amends 97232a3fd8970a072e36ac3d080ce828dd9243fb . Fixes: QTBUG-123007 Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I3b4e5d4a8304fd57558eec3897562895c294aadd Reviewed-by: David Edmundson --- src/plugins/platforms/wayland/qwaylandinputdevice.cpp | 11 +++++------ src/plugins/platforms/wayland/qwaylandinputdevice_p.h | 2 -- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp index 6f421febde7..7406e3469f3 100644 --- a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp +++ b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp @@ -69,11 +69,12 @@ QWaylandInputDevice::Keyboard::Keyboard(QWaylandInputDevice *p) return; } mRepeatTimer.setInterval(1000 / mRepeatRate); - handleKey(mRepeatKey.time, QEvent::KeyRelease, mRepeatKey.key, mRepeatKey.modifiers, - mRepeatKey.code, mRepeatKey.nativeVirtualKey, mRepeatKey.nativeModifiers, + Qt::KeyboardModifiers modifiers = this->modifiers(); + handleKey(mRepeatKey.time, QEvent::KeyRelease, mRepeatKey.key, modifiers, + mRepeatKey.code, mRepeatKey.nativeVirtualKey, this->mNativeModifiers, mRepeatKey.text, true); - handleKey(mRepeatKey.time, QEvent::KeyPress, mRepeatKey.key, mRepeatKey.modifiers, - mRepeatKey.code, mRepeatKey.nativeVirtualKey, mRepeatKey.nativeModifiers, + handleKey(mRepeatKey.time, QEvent::KeyPress, mRepeatKey.key, modifiers, + mRepeatKey.code, mRepeatKey.nativeVirtualKey, this->mNativeModifiers, mRepeatKey.text, true); }); } @@ -1354,8 +1355,6 @@ void QWaylandInputDevice::Keyboard::keyboard_key(uint32_t serial, uint32_t time, mRepeatKey.code = code; mRepeatKey.time = time; mRepeatKey.text = text; - mRepeatKey.modifiers = modifiers; - mRepeatKey.nativeModifiers = mNativeModifiers; mRepeatKey.nativeVirtualKey = sym; mRepeatTimer.setInterval(mRepeatDelay); mRepeatTimer.start(); diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice_p.h b/src/plugins/platforms/wayland/qwaylandinputdevice_p.h index 67bfb9afd85..cf565cb8502 100644 --- a/src/plugins/platforms/wayland/qwaylandinputdevice_p.h +++ b/src/plugins/platforms/wayland/qwaylandinputdevice_p.h @@ -237,9 +237,7 @@ public: uint32_t code = 0; uint32_t time = 0 ; QString text; - Qt::KeyboardModifiers modifiers; uint32_t nativeVirtualKey = 0; - uint32_t nativeModifiers = 0; } mRepeatKey; QTimer mRepeatTimer;