mirror of
https://github.com/cage-kiosk/cage.git
synced 2025-10-29 05:40:19 -04:00
seat: log around input device mapping (#128)
This should make it easier to troubleshoot why, for example, a touch input device isn't mapped to a touch output device. See #126.
This commit is contained in:
parent
27391f174a
commit
9886efa112
1 changed files with 23 additions and 18 deletions
41
seat.c
41
seat.c
|
|
@ -124,6 +124,27 @@ update_capabilities(struct cg_seat *seat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
map_input_device_to_output(struct cg_seat *seat, struct wlr_input_device *device)
|
||||||
|
{
|
||||||
|
if (!device->output_name) {
|
||||||
|
wlr_log(WLR_INFO, "Input device %s cannot be mapped to an output device\n", device->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct cg_output *output;
|
||||||
|
wl_list_for_each (output, &seat->server->outputs, link) {
|
||||||
|
if (strcmp(device->output_name, output->wlr_output->name) == 0) {
|
||||||
|
wlr_log(WLR_INFO, "Mapping input device %s to output device %s\n", device->name,
|
||||||
|
output->wlr_output->name);
|
||||||
|
wlr_cursor_map_input_to_output(seat->cursor, device, output->wlr_output);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
wlr_log(WLR_INFO, "Couldn't map input device %s to an output\n", device->name);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_touch_destroy(struct wl_listener *listener, void *data)
|
handle_touch_destroy(struct wl_listener *listener, void *data)
|
||||||
{
|
{
|
||||||
|
|
@ -155,15 +176,7 @@ handle_new_touch(struct cg_seat *seat, struct wlr_input_device *device)
|
||||||
touch->destroy.notify = handle_touch_destroy;
|
touch->destroy.notify = handle_touch_destroy;
|
||||||
wl_signal_add(&touch->device->events.destroy, &touch->destroy);
|
wl_signal_add(&touch->device->events.destroy, &touch->destroy);
|
||||||
|
|
||||||
if (device->output_name != NULL) {
|
map_input_device_to_output(seat, device);
|
||||||
struct cg_output *output;
|
|
||||||
wl_list_for_each (output, &seat->server->outputs, link) {
|
|
||||||
if (strcmp(device->output_name, output->wlr_output->name) == 0) {
|
|
||||||
wlr_cursor_map_input_to_output(seat->cursor, device, output->wlr_output);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -197,15 +210,7 @@ handle_new_pointer(struct cg_seat *seat, struct wlr_input_device *device)
|
||||||
pointer->destroy.notify = handle_pointer_destroy;
|
pointer->destroy.notify = handle_pointer_destroy;
|
||||||
wl_signal_add(&device->events.destroy, &pointer->destroy);
|
wl_signal_add(&device->events.destroy, &pointer->destroy);
|
||||||
|
|
||||||
if (device->output_name != NULL) {
|
map_input_device_to_output(seat, device);
|
||||||
struct cg_output *output;
|
|
||||||
wl_list_for_each (output, &seat->server->outputs, link) {
|
|
||||||
if (strcmp(device->output_name, output->wlr_output->name) == 0) {
|
|
||||||
wlr_cursor_map_input_to_output(seat->cursor, device, output->wlr_output);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue