diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2020-03-24 20:03:48 +0100 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2020-03-24 20:03:48 +0100 |
| commit | 4872a6837817aef9e88d6ad5a3170c000c884640 (patch) | |
| tree | 0effd704efe64f61638ef79c5a4b7cdc876f1c76 /src/keyboard.zig | |
| parent | e01a150f6d53108f8dad29f7a4e4a275b616c351 (diff) | |
| download | river-4872a6837817aef9e88d6ad5a3170c000c884640.tar.gz river-4872a6837817aef9e88d6ad5a3170c000c884640.tar.xz | |
Remove superfluous .*.
I may be be slowly getting the hang of this language.
Diffstat (limited to 'src/keyboard.zig')
| -rw-r--r-- | src/keyboard.zig | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/keyboard.zig b/src/keyboard.zig index 1a86a02..1f84772 100644 --- a/src/keyboard.zig +++ b/src/keyboard.zig @@ -6,6 +6,7 @@ const Seat = @import("seat.zig").Seat; pub const Keyboard = struct { seat: *Seat, device: *c.wlr_input_device, + wlr_keyboard: *c.wlr_keyboard, listen_modifiers: c.wl_listener, listen_key: c.wl_listener, @@ -13,6 +14,7 @@ pub const Keyboard = struct { pub fn init(self: *@This(), seat: *Seat, device: *c.wlr_input_device) !void { self.seat = seat; self.device = device; + self.wlr_keyboard = device.unnamed_37.keyboard; // We need to prepare an XKB keymap and assign it to the keyboard. This // assumes the defaults (e.g. layout = "us"). @@ -35,17 +37,16 @@ pub const Keyboard = struct { return error.CantCreateXkbKeymap; defer c.xkb_keymap_unref(keymap); - var keyboard_device = self.device.unnamed_37.keyboard; // TODO: handle failure after https://github.com/swaywm/wlroots/pull/2081 - c.wlr_keyboard_set_keymap(keyboard_device, keymap); - c.wlr_keyboard_set_repeat_info(keyboard_device, 25, 600); + c.wlr_keyboard_set_keymap(self.wlr_keyboard, keymap); + c.wlr_keyboard_set_repeat_info(self.wlr_keyboard, 25, 600); // Setup listeners for keyboard events self.listen_modifiers.notify = handle_modifiers; - c.wl_signal_add(&keyboard_device.*.events.modifiers, &self.listen_modifiers); + c.wl_signal_add(&self.wlr_keyboard.events.modifiers, &self.listen_modifiers); self.listen_key.notify = handle_key; - c.wl_signal_add(&keyboard_device.*.events.key, &self.listen_key); + c.wl_signal_add(&self.wlr_keyboard.events.key, &self.listen_key); } fn handle_modifiers(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void { @@ -57,10 +58,13 @@ pub const Keyboard = struct { // Wayland protocol - not wlroots. We assign all connected keyboards to the // same seat. You can swap out the underlying wlr_keyboard like this and // wlr_seat handles this transparently. - c.wlr_seat_set_keyboard(keyboard.seat.wlr_seat, keyboard.*.device); + c.wlr_seat_set_keyboard(keyboard.seat.wlr_seat, keyboard.device); // Send modifiers to the client. - c.wlr_seat_keyboard_notify_modifiers(keyboard.seat.wlr_seat, &keyboard.*.device.*.unnamed_37.keyboard.*.modifiers); + c.wlr_seat_keyboard_notify_modifiers( + keyboard.seat.wlr_seat, + &keyboard.wlr_keyboard.modifiers, + ); } fn handle_key(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void { @@ -71,16 +75,16 @@ pub const Keyboard = struct { @alignCast(@alignOf(*c.wlr_event_keyboard_key), data), ); - const keyboard_device = keyboard.device.unnamed_37.keyboard; + const wlr_keyboard: *c.wlr_keyboard = keyboard.device.unnamed_37.keyboard; // Translate libinput keycode -> xkbcommon const keycode = event.keycode + 8; // Get a list of keysyms based on the keymap for this keyboard var syms: ?[*]c.xkb_keysym_t = undefined; - const nsyms = c.xkb_state_key_get_syms(keyboard_device.*.xkb_state, keycode, &syms); + const nsyms = c.xkb_state_key_get_syms(wlr_keyboard.xkb_state, keycode, &syms); var handled = false; - const modifiers = c.wlr_keyboard_get_modifiers(keyboard_device); + const modifiers = c.wlr_keyboard_get_modifiers(wlr_keyboard); if (modifiers & @intCast(u32, c.WLR_MODIFIER_LOGO) != 0 and event.state == c.enum_wlr_key_state.WLR_KEY_PRESSED) { |
