From 2be309de1df5e4262175fbcc58e6dd8de4e0e6d3 Mon Sep 17 00:00:00 2001 From: JS Deck Date: Mon, 4 Aug 2025 16:29:39 -0300 Subject: virtualkeyboard: Add options to skip releasing pressed keys on close and to skip sharing key states (#11214) --- src/devices/Keyboard.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/devices/Keyboard.cpp') 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 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] { -- cgit v1.2.3