From b359b1560c5b8b6d3f74a94d79584ce0f1f69d7d Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Sun, 3 Sep 2023 19:15:50 +0200 Subject: [PATCH] Move keyboard functions into input/keyboard.h --- include/input/keyboard.h | 19 +++++++++++++++++++ include/labwc.h | 8 -------- src/input/keyboard.c | 16 ++++++++++++++-- src/interactive.c | 1 + src/regions.c | 1 + src/seat.c | 6 ++---- src/workspaces.c | 1 + 7 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 include/input/keyboard.h diff --git a/include/input/keyboard.h b/include/input/keyboard.h new file mode 100644 index 00000000..a1604f63 --- /dev/null +++ b/include/input/keyboard.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef LABWC_KEYBOARD_H +#define LABWC_KEYBOARD_H + +#include + +struct seat; +struct keyboard; +struct wlr_keyboard; + +void keyboard_init(struct seat *seat); +void keyboard_finish(struct seat *seat); + +void keyboard_setup_handlers(struct keyboard *keyboard); +void keyboard_set_numlock(struct wlr_keyboard *keyboard); +void keyboard_cancel_keybind_repeat(struct keyboard *keyboard); +bool keyboard_any_modifiers_pressed(struct wlr_keyboard *keyboard); + +#endif /* LABWC_KEYBOARD_H */ diff --git a/include/labwc.h b/include/labwc.h index 14299f1f..7ac4ad18 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -410,14 +410,6 @@ struct view *desktop_cycle_view(struct server *server, struct view *start_view, */ void desktop_focus_topmost_view(struct server *server); -void keyboard_cancel_keybind_repeat(struct keyboard *keyboard); -void keyboard_key_notify(struct wl_listener *listener, void *data); -void keyboard_modifiers_notify(struct wl_listener *listener, void *data); -void keyboard_set_numlock(struct wlr_keyboard *keyboard); -void keyboard_init(struct seat *seat); -bool keyboard_any_modifiers_pressed(struct wlr_keyboard *keyboard); -void keyboard_finish(struct seat *seat); - void seat_init(struct server *server); void seat_finish(struct server *server); void seat_reconfigure(struct server *server); diff --git a/src/input/keyboard.c b/src/input/keyboard.c index ab4f5ac5..87b41b56 100644 --- a/src/input/keyboard.c +++ b/src/input/keyboard.c @@ -5,6 +5,7 @@ #include #include "action.h" #include "idle.h" +#include "input/keyboard.h" #include "input/key-state.h" #include "labwc.h" #include "menu/menu.h" @@ -52,7 +53,7 @@ end_cycling(struct server *server) should_cancel_cycling_on_next_key_release = false; } -void +static void keyboard_modifiers_notify(struct wl_listener *listener, void *data) { struct keyboard *keyboard = wl_container_of(listener, keyboard, modifier); @@ -476,7 +477,7 @@ keyboard_cancel_keybind_repeat(struct keyboard *keyboard) } } -void +static void keyboard_key_notify(struct wl_listener *listener, void *data) { /* This event is raised when a key is pressed or released. */ @@ -550,6 +551,17 @@ keyboard_init(struct seat *seat) keybind_update_keycodes(seat->server); } +void +keyboard_setup_handlers(struct keyboard *keyboard) +{ + struct wlr_keyboard *wlr_kb = keyboard->wlr_keyboard; + + keyboard->key.notify = keyboard_key_notify; + wl_signal_add(&wlr_kb->events.key, &keyboard->key); + keyboard->modifier.notify = keyboard_modifiers_notify; + wl_signal_add(&wlr_kb->events.modifiers, &keyboard->modifier); +} + void keyboard_finish(struct seat *seat) { diff --git a/src/interactive.c b/src/interactive.c index 0476f5fb..d863f569 100644 --- a/src/interactive.c +++ b/src/interactive.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only +#include "input/keyboard.h" #include "labwc.h" #include "regions.h" #include "resize_indicator.h" diff --git a/src/regions.c b/src/regions.c index ad05cf2e..f6eb6174 100644 --- a/src/regions.c +++ b/src/regions.c @@ -12,6 +12,7 @@ #include "common/graphic-helpers.h" #include "common/list.h" #include "common/mem.h" +#include "input/keyboard.h" #include "labwc.h" #include "regions.h" #include "view.h" diff --git a/src/seat.c b/src/seat.c index 778729ac..32ca58c8 100644 --- a/src/seat.c +++ b/src/seat.c @@ -9,6 +9,7 @@ #include #include #include "common/mem.h" +#include "input/keyboard.h" #include "input/key-state.h" #include "labwc.h" #include "view.h" @@ -223,10 +224,7 @@ new_keyboard(struct seat *seat, struct wlr_input_device *device, bool virtual) wlr_keyboard_group_add_keyboard(seat->keyboard_group, kb); } - keyboard->key.notify = keyboard_key_notify; - wl_signal_add(&kb->events.key, &keyboard->key); - keyboard->modifier.notify = keyboard_modifiers_notify; - wl_signal_add(&kb->events.modifiers, &keyboard->modifier); + keyboard_setup_handlers(keyboard); wlr_seat_set_keyboard(seat->seat, kb); diff --git a/src/workspaces.c b/src/workspaces.c index 89bf030b..602133cf 100644 --- a/src/workspaces.c +++ b/src/workspaces.c @@ -12,6 +12,7 @@ #include "common/graphic-helpers.h" #include "common/list.h" #include "common/mem.h" +#include "input/keyboard.h" #include "labwc.h" #include "view.h" #include "workspaces.h" -- 2.52.0