input: remove the concept of "significant" modifiers

For the purpose of matching key bindings, "significant" modifiers are
no more.

We're really only interested in filtering out "locked"
modifiers. We're already doing this, so there's no need to *also*
match against a set of "significant" modifiers.

Furthermore, we *never* want to consider locked keys (e.g. when
emitting escapes to the client application), thus we can filter those
out already when retrieving the set of active modifiers.

The exception is the kitty keyboard protocol, which has support for
CapsLock and NumLock. Since we're already re-retrieving the "consumed"
modifiers (using the GTK style, rather than normal "XKB" style, to
better match the kitty terminal), we might as well re-retrieve the
effective modifiers as well.
This commit is contained in:
Daniel Eklöf 2024-02-06 10:41:01 +01:00
parent 4730ff8d08
commit 0aefc2c65d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
8 changed files with 28 additions and 52 deletions

View file

@ -3039,7 +3039,7 @@ term_mouse_grabbed(const struct terminal *term, const struct seat *seat)
*/
xkb_mod_mask_t mods;
get_current_modifiers(seat, &mods, NULL, 0);
get_current_modifiers(seat, &mods, NULL, 0, true);
const struct key_binding_set *bindings =
key_binding_for(term->wl->key_binding_manager, term->conf, seat);