]> git.sur5r.net Git - i3/i3/commit
Only add NumLock fallback where necessary.
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 2 Aug 2016 18:23:53 +0000 (20:23 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 2 Aug 2016 18:34:20 +0000 (20:34 +0200)
commitd77d40173aae250d2e5ba86a8bce7a6e857cbc67
tree6d947eb200cf3b842be85d244cdaa1c08e50744f
parent3bd5e6e5c81b448f9f0ac84454671a871fbfea66
Only add NumLock fallback where necessary.

Previously, we always discarded the NumLock bit when looking up key
bindings for key press events, and we always grabbed every keycode with
and without the NumLock modifier.

With this commit, the NumLock bit is no longer discarded: since the
previous commit 3bd5e6e5c81b448f9f0ac84454671a871fbfea66 we can
correctly look up key bindings with/without the NumLock bit, as both
variants are stored in |keycodes_head|.

Further, before adding the NumLock fallback (resulting in grabbing the
keycode with the NumLock modifier), we now check whether the key has the
same meaning when NumLock is enabled. This correctly distinguishes the
KP_End vs. KP_1 case, i.e. one can now use the following key bindings:

    # No longer accidentally triggered when pressing KP_1.
    bindsym KP_End nop KP_End

    # Properly distinguished now:
    bindsym KP_End nop KP_End
    bindsym Mod2+KP_1 nop KP_1

fixes #2346
src/bindings.c
testcases/t/264-keypress-numlock.t [new file with mode: 0644]