aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>2020-10-18 02:59:25 +0200
committerIsaac Freund <ifreund@ifreund.xyz>2020-10-18 16:36:11 +0200
commit744e6b3052a44ba9478e40050dddd77db3cc7529 (patch)
tree2fd5c67ff34ff9e9e7a374be74e887069c3cd231
parent4b4f7c464c82d90af6ae378d948bd1923ab50d58 (diff)
downloadriver-744e6b3052a44ba9478e40050dddd77db3cc7529.tar.gz
river-744e6b3052a44ba9478e40050dddd77db3cc7529.tar.xz
Remove checking translated keysyms
Raw keysyms are enough to handle all possible keybinds
-rw-r--r--river/Keyboard.zig27
1 files changed, 3 insertions, 24 deletions
diff --git a/river/Keyboard.zig b/river/Keyboard.zig
index 6044257..93b26e6 100644
--- a/river/Keyboard.zig
+++ b/river/Keyboard.zig
@@ -80,14 +80,6 @@ fn handleKey(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void {
// Translate libinput keycode -> xkbcommon
const keycode = event.keycode + 8;
- // Get a list of keysyms as xkb reports them
- var translated_keysyms: ?[*]c.xkb_keysym_t = undefined;
- const translated_keysyms_len = c.xkb_state_key_get_syms(
- wlr_keyboard.xkb_state,
- keycode,
- &translated_keysyms,
- );
-
// Get a list of keysyms ignoring modifiers (e.g. 1 instead of !)
// Important for mappings like Mod+Shift+1
var raw_keysyms: ?[*]c.xkb_keysym_t = undefined;
@@ -106,29 +98,16 @@ fn handleKey(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void {
const released = event.state == .WLR_KEY_RELEASED;
var i: usize = 0;
- while (i < translated_keysyms_len) : (i += 1) {
+ while (i < raw_keysyms_len) : (i += 1) {
// Handle builtin mapping only when keys are pressed
- if (!released and self.handleBuiltinMapping(translated_keysyms.?[i])) {
+ if (!released and self.handleBuiltinMapping(raw_keysyms.?[i])) {
handled = true;
break;
- } else if (self.seat.handleMapping(translated_keysyms.?[i], modifiers, released)) {
+ } else if (self.seat.handleMapping(raw_keysyms.?[i], modifiers, released)) {
handled = true;
break;
}
}
- if (!handled) {
- i = 0;
- while (i < raw_keysyms_len) : (i += 1) {
- // Handle builtin mapping only when keys are pressed
- if (!released and self.handleBuiltinMapping(raw_keysyms.?[i])) {
- handled = true;
- break;
- } else if (self.seat.handleMapping(raw_keysyms.?[i], modifiers, released)) {
- handled = true;
- break;
- }
- }
- }
if (!handled) {
// Otherwise, we pass it along to the client.