virtualkeyboard: Add options to skip releasing pressed keys on close and to skip sharing key states (#11214)
This commit is contained in:
parent
6491bb4fb7
commit
2be309de1d
23 changed files with 416 additions and 137 deletions
|
|
@ -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] {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue