summaryrefslogtreecommitdiff
path: root/src/devices/Keyboard.cpp
diff options
context:
space:
mode:
authorJS Deck <jsdeckerido@gmail.com>2025-08-04 16:29:39 -0300
committerGitHub <noreply@github.com>2025-08-04 21:29:39 +0200
commit2be309de1df5e4262175fbcc58e6dd8de4e0e6d3 (patch)
tree866629ba5a4b9b45d8720383e4332726444f3566 /src/devices/Keyboard.cpp
parent6491bb4fb7c7e86d9168a104d5b87ace4e1b978d (diff)
virtualkeyboard: Add options to skip releasing pressed keys on close and to skip sharing key states (#11214)
Diffstat (limited to 'src/devices/Keyboard.cpp')
-rw-r--r--src/devices/Keyboard.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/devices/Keyboard.cpp b/src/devices/Keyboard.cpp
index 9ce37e6b..80f76c17 100644
--- a/src/devices/Keyboard.cpp
+++ b/src/devices/Keyboard.cpp
@@ -29,13 +29,16 @@ CKeyboard::CKeyboard(SP<Aquamarine::IKeyboard> keeb) : m_keyboard(keeb) {
});
m_listeners.key = keeb->events.key.listen([this](const Aquamarine::IKeyboard::SKeyEvent& event) {
+ const auto UPDATED = updatePressed(event.key, event.pressed);
+
m_keyboardEvents.key.emit(SKeyEvent{
.timeMs = event.timeMs,
.keycode = event.key,
.state = event.pressed ? WL_KEYBOARD_KEY_STATE_PRESSED : WL_KEYBOARD_KEY_STATE_RELEASED,
});
- updateXkbStateWithKey(event.key + 8, event.pressed);
+ if (UPDATED)
+ updateXkbStateWithKey(event.key + 8, event.pressed);
});
m_listeners.modifiers = keeb->events.modifiers.listen([this] {