Compare commits

...

2 Commits

Author SHA1 Message Date
Keith 4378332c13
Merge 2b5d8a0978 into fc640d5f6c 2024-02-24 16:23:14 +00:00
k3d3 2b5d8a0978 Ignore modifiers on release, to match i3 behaviour
Closes #6456.

The i3 window manager ignores modifiers when a button is being released.
Mimic this behaviour in Sway.
2021-10-17 18:11:30 -04:00
2 changed files with 2 additions and 2 deletions

View File

@ -162,7 +162,7 @@ static void get_active_binding(const struct sway_shortcut_state *state,
bool binding_inhibited = (binding->flags & BINDING_INHIBITED) != 0;
bool binding_release = binding->flags & BINDING_RELEASE;
if (modifiers ^ binding->modifiers ||
if ((modifiers ^ binding->modifiers && !release) ||
release != binding_release ||
locked > binding_locked ||
inhibited > binding_inhibited ||

View File

@ -131,7 +131,7 @@ static struct sway_binding* get_active_mouse_binding(
struct sway_binding *current = NULL;
for (int i = 0; i < bindings->length; ++i) {
struct sway_binding *binding = bindings->items[i];
if (modifiers ^ binding->modifiers ||
if ((modifiers ^ binding->modifiers && !release) ||
e->pressed_button_count != (size_t)binding->keys->length ||
release != (binding->flags & BINDING_RELEASE) ||
!(click_region & binding->flags) ||