include: move a few types from labwc.h to better locations

This commit is contained in:
John Lindgren 2025-07-26 16:23:02 -04:00 committed by Johan Malm
parent e1475a1e47
commit 2e6b30eb50
6 changed files with 41 additions and 46 deletions

View file

@ -2,7 +2,16 @@
#ifndef LABWC_INPUT_H
#define LABWC_INPUT_H
struct seat;
#include <wayland-server-core.h>
struct input {
struct wlr_input_device *wlr_input_device;
struct seat *seat;
/* Set for pointer/touch devices */
double scroll_factor;
struct wl_listener destroy;
struct wl_list link; /* seat.inputs */
};
void input_handlers_init(struct seat *seat);
void input_handlers_finish(struct seat *seat);

View file

@ -4,10 +4,25 @@
#include <stdbool.h>
#include <xkbcommon/xkbcommon.h>
#include "input/input.h"
struct seat;
struct keyboard;
struct wlr_keyboard;
/*
* Virtual keyboards should not belong to seat->keyboard_group. As a result we
* need to be able to ascertain which wlr_keyboard key/modifier events come from
* and we achieve that by using `struct keyboard` which inherits `struct input`
* and adds keyboard specific listeners and a wlr_keyboard pointer.
*/
struct keyboard {
struct input base;
struct wlr_keyboard *wlr_keyboard;
bool is_virtual;
struct wl_listener modifiers;
struct wl_listener key;
/* key repeat for compositor keybinds */
uint32_t keybind_repeat_keycode;
int32_t keybind_repeat_rate;
struct wl_event_source *keybind_repeat;
};
void keyboard_reset_current_keybind(void);
void keyboard_configure(struct seat *seat, struct wlr_keyboard *kb,