Merge pull request #2172 from apreiml/fix-keybinding-modifier-handling

fix handling key modifiers if not pressed at first
master
Drew DeVault 7 years ago committed by GitHub
commit d3ea07f828
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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…
Cancel
Save