mirror of
https://github.com/swaywm/sway.git
synced 2024-11-27 02:11:28 +00:00
Merge pull request #2172 from apreiml/fix-keybinding-modifier-handling
fix handling key modifiers if not pressed at first
This commit is contained in:
commit
d3ea07f828
|
@ -64,12 +64,12 @@ static void update_shortcut_state(struct sway_shortcut_state *state,
|
||||||
bool last_key_was_a_modifier = raw_modifiers != state->last_raw_modifiers;
|
bool last_key_was_a_modifier = raw_modifiers != state->last_raw_modifiers;
|
||||||
state->last_raw_modifiers = raw_modifiers;
|
state->last_raw_modifiers = raw_modifiers;
|
||||||
|
|
||||||
if (event->state == WLR_KEY_PRESSED) {
|
|
||||||
if (last_key_was_a_modifier && state->last_keycode) {
|
if (last_key_was_a_modifier && state->last_keycode) {
|
||||||
// Last pressed key before this one was a modifier
|
// Last pressed key before this one was a modifier
|
||||||
state_erase_key(state, state->last_keycode);
|
state_erase_key(state, state->last_keycode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->state == WLR_KEY_PRESSED) {
|
||||||
// Add current key to set; there may be duplicates
|
// Add current key to set; there may be duplicates
|
||||||
state_add_key(state, event->keycode, new_key);
|
state_add_key(state, event->keycode, new_key);
|
||||||
state->last_keycode = event->keycode;
|
state->last_keycode = event->keycode;
|
||||||
|
|
Loading…
Reference in a new issue