mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-22 09:59:48 +01:00
types/wlr_input_device: move output_name field to wlr_pointer and wlr_touch
This commit is contained in:
parent
2001441a37
commit
a92e5f8d46
9 changed files with 18 additions and 6 deletions
|
@ -440,8 +440,7 @@ void create_pointer(struct wlr_wl_seat *seat, struct wlr_wl_output *output) {
|
|||
snprintf(name, sizeof(name), "wayland-pointer-%s", seat->name);
|
||||
wlr_pointer_init(&pointer->wlr_pointer, &wl_pointer_impl, name);
|
||||
|
||||
/* TODO: move output_name to pointer/touch */
|
||||
pointer->wlr_pointer.base.output_name = strdup(output->wlr_output.name);
|
||||
pointer->wlr_pointer.output_name = strdup(output->wlr_output.name);
|
||||
|
||||
pointer->seat = seat;
|
||||
pointer->output = output;
|
||||
|
|
|
@ -217,6 +217,13 @@ static void init_seat_touch(struct wlr_wl_seat *seat) {
|
|||
|
||||
wlr_touch_init(&seat->wlr_touch, &touch_impl, name);
|
||||
|
||||
struct wlr_wl_output *output;
|
||||
wl_list_for_each(output, &seat->backend->outputs, link) {
|
||||
/* Multi-output touch not supproted */
|
||||
seat->wlr_touch.output_name = strdup(output->wlr_output.name);
|
||||
break;
|
||||
}
|
||||
|
||||
wl_touch_add_listener(seat->wl_touch, &touch_listener, seat);
|
||||
wlr_signal_emit_safe(&seat->backend->backend.events.new_input,
|
||||
&seat->wlr_touch.base);
|
||||
|
|
|
@ -574,10 +574,10 @@ struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) {
|
|||
wlr_output_update_enabled(wlr_output, true);
|
||||
|
||||
wlr_pointer_init(&output->pointer, &x11_pointer_impl, "x11-pointer");
|
||||
output->pointer.base.output_name = strdup(wlr_output->name);
|
||||
output->pointer.output_name = strdup(wlr_output->name);
|
||||
|
||||
wlr_touch_init(&output->touch, &x11_touch_impl, "x11-touch");
|
||||
output->touch.base.output_name = strdup(wlr_output->name);
|
||||
output->touch.output_name = strdup(wlr_output->name);
|
||||
wl_list_init(&output->touchpoints);
|
||||
|
||||
wlr_signal_emit_safe(&x11->backend.events.new_output, wlr_output);
|
||||
|
|
|
@ -31,7 +31,6 @@ struct wlr_input_device {
|
|||
char *name;
|
||||
// Or 0 if not applicable to this device
|
||||
double width_mm, height_mm;
|
||||
char *output_name;
|
||||
|
||||
/* wlr_input_device.type determines which of these is valid */
|
||||
union {
|
||||
|
|
|
@ -21,6 +21,8 @@ struct wlr_pointer {
|
|||
|
||||
const struct wlr_pointer_impl *impl;
|
||||
|
||||
char *output_name;
|
||||
|
||||
struct {
|
||||
struct wl_signal motion; // struct wlr_event_pointer_motion
|
||||
struct wl_signal motion_absolute; // struct wlr_event_pointer_motion_absolute
|
||||
|
|
|
@ -20,6 +20,8 @@ struct wlr_touch {
|
|||
|
||||
const struct wlr_touch_impl *impl;
|
||||
|
||||
char *output_name;
|
||||
|
||||
struct {
|
||||
struct wl_signal down; // struct wlr_event_touch_down
|
||||
struct wl_signal up; // struct wlr_event_touch_up
|
||||
|
|
|
@ -25,5 +25,4 @@ void wlr_input_device_finish(struct wlr_input_device *wlr_device) {
|
|||
wl_list_remove(&wlr_device->events.destroy.listener_list);
|
||||
|
||||
free(wlr_device->name);
|
||||
free(wlr_device->output_name);
|
||||
}
|
||||
|
|
|
@ -29,4 +29,6 @@ void wlr_pointer_init(struct wlr_pointer *pointer,
|
|||
|
||||
void wlr_pointer_finish(struct wlr_pointer *pointer) {
|
||||
wlr_input_device_finish(&pointer->base);
|
||||
|
||||
free(pointer->output_name);
|
||||
}
|
||||
|
|
|
@ -21,4 +21,6 @@ void wlr_touch_init(struct wlr_touch *touch,
|
|||
|
||||
void wlr_touch_finish(struct wlr_touch *touch) {
|
||||
wlr_input_device_finish(&touch->base);
|
||||
|
||||
free(touch->output_name);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue