*/
struct seat *seat = wl_container_of(listener, seat, cursor_motion);
struct server *server = seat->server;
- struct wlr_event_pointer_motion *event = data;
+ struct wlr_pointer_motion_event *event = data;
wlr_idle_notify_activity(seat->wlr_idle, seat->seat);
wlr_relative_pointer_manager_v1_send_relative_motion(
* NULL for the device if you want to move the cursor around
* without any input.
*/
- wlr_cursor_move(seat->cursor, event->device, event->delta_x,
- event->delta_y);
+ wlr_cursor_move(seat->cursor, &event->pointer->base,
+ event->delta_x, event->delta_y);
}
process_cursor_motion(seat->server, event->time_msec);
}
*/
struct seat *seat = wl_container_of(
listener, seat, cursor_motion_absolute);
- struct wlr_event_pointer_motion_absolute *event = data;
+ struct wlr_pointer_motion_absolute_event *event = data;
wlr_idle_notify_activity(seat->wlr_idle, seat->seat);
double lx, ly;
- wlr_cursor_absolute_to_layout_coords(seat->cursor, event->device,
- event->x, event->y, &lx, &ly);
+ wlr_cursor_absolute_to_layout_coords(seat->cursor,
+ &event->pointer->base, event->x, event->y, &lx, &ly);
double dx = lx - seat->cursor->x;
double dy = ly - seat->cursor->y;
* NULL for the device if you want to move the cursor around
* without any input.
*/
- wlr_cursor_move(seat->cursor, event->device, dx, dy); }
+ wlr_cursor_move(seat->cursor, &event->pointer->base, dx, dy);
+ }
process_cursor_motion(seat->server, event->time_msec);
}
*/
struct seat *seat = wl_container_of(listener, seat, cursor_button);
struct server *server = seat->server;
- struct wlr_event_pointer_button *event = data;
+ struct wlr_pointer_button_event *event = data;
wlr_idle_notify_activity(seat->wlr_idle, seat->seat);
double sx, sy;
* event, for example when you move the scroll wheel.
*/
struct seat *seat = wl_container_of(listener, seat, cursor_axis);
- struct wlr_event_pointer_axis *event = data;
+ struct wlr_pointer_axis_event *event = data;
wlr_idle_notify_activity(seat->wlr_idle, seat->seat);
/* Notify the client with pointer focus of the axis event. */
static void handle_pointer_pinch_begin(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, pinch_begin);
- struct wlr_event_pointer_pinch_begin *event = data;
+ struct wlr_pointer_pinch_begin_event *event = data;
wlr_pointer_gestures_v1_send_pinch_begin(seat->pointer_gestures,
seat->seat, event->time_msec, event->fingers);
}
static void handle_pointer_pinch_update(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, pinch_update);
- struct wlr_event_pointer_pinch_update *event = data;
+ struct wlr_pointer_pinch_update_event *event = data;
wlr_pointer_gestures_v1_send_pinch_update(seat->pointer_gestures,
seat->seat, event->time_msec, event->dx, event->dy,
event->scale, event->rotation);
static void handle_pointer_pinch_end(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, pinch_end);
- struct wlr_event_pointer_pinch_end *event = data;
+ struct wlr_pointer_pinch_end_event *event = data;
wlr_pointer_gestures_v1_send_pinch_end(seat->pointer_gestures,
seat->seat, event->time_msec, event->cancelled);
}
static void handle_pointer_swipe_begin(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, swipe_begin);
- struct wlr_event_pointer_swipe_begin *event = data;
+ struct wlr_pointer_swipe_begin_event *event = data;
wlr_pointer_gestures_v1_send_swipe_begin(seat->pointer_gestures,
seat->seat, event->time_msec, event->fingers);
}
static void handle_pointer_swipe_update(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, swipe_update);
- struct wlr_event_pointer_swipe_update *event = data;
+ struct wlr_pointer_swipe_update_event *event = data;
wlr_pointer_gestures_v1_send_swipe_update(seat->pointer_gestures,
seat->seat, event->time_msec, event->dx, event->dy);
}
static void handle_pointer_swipe_end(struct wl_listener *listener, void *data)
{
struct seat *seat = wl_container_of(listener, seat, swipe_end);
- struct wlr_event_pointer_swipe_end *event = data;
+ struct wlr_pointer_swipe_end_event *event = data;
wlr_pointer_gestures_v1_send_swipe_end(seat->pointer_gestures,
seat->seat, event->time_msec, event->cancelled);
}
struct server *server = seat->server;
if (server->cycle_view) {
- struct wlr_event_keyboard_key *event = data;
+ struct wlr_keyboard_key_event *event = data;
struct wlr_keyboard *keyboard = &seat->keyboard_group->keyboard;
if ((event->state == WL_KEYBOARD_KEY_STATE_RELEASED)
&& !any_modifiers_pressed(keyboard)) {
static bool
handle_compositor_keybindings(struct wl_listener *listener,
- struct wlr_event_keyboard_key *event)
+ struct wlr_keyboard_key_event *event)
{
struct seat *seat = wl_container_of(listener, seat, keyboard_key);
struct server *server = seat->server;
/* This event is raised when a key is pressed or released. */
struct seat *seat = wl_container_of(listener, seat, keyboard_key);
struct server *server = seat->server;
- struct wlr_event_keyboard_key *event = data;
+ struct wlr_keyboard_key_event *event = data;
struct wlr_seat *wlr_seat = server->seat.seat;
struct wlr_keyboard *keyboard = &seat->keyboard_group->keyboard;
wlr_idle_notify_activity(seat->wlr_idle, seat->seat);
// SPDX-License-Identifier: GPL-2.0-only
#include <assert.h>
+#include <stdbool.h>
#include <strings.h>
#include <wlr/backend/libinput.h>
+#include <wlr/types/wlr_input_device.h>
#include <wlr/util/log.h>
#include "labwc.h"
free(input);
}
+static bool
+is_touch_device(struct wlr_input_device *wlr_input_device)
+{
+ switch (wlr_input_device->type) {
+ case WLR_INPUT_DEVICE_TOUCH:
+ case WLR_INPUT_DEVICE_TABLET_TOOL:
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
static void
configure_libinput(struct wlr_input_device *wlr_input_device)
{
}
enum device_type current_type;
- if (wlr_input_device->width_mm) {
- current_type = TOUCH_DEVICE;
- } else {
- current_type = NON_TOUCH_DEVICE;
- }
+ current_type = is_touch_device(wlr_input_device)
+ ? TOUCH_DEVICE : NON_TOUCH_DEVICE;
struct libinput_category *device_category, *dc = NULL;
wl_list_for_each(device_category, &rc.libinput_categories, link) {
if (device_category->name) {
- if (!strcasecmp(wlr_input_device->name, device_category->name)) {
+ if (!strcasecmp(wlr_input_device->name,
+ device_category->name)) {
dc = device_category;
break;
}
wlr_cursor_attach_input_device(seat->cursor, dev);
/* In support of running with WLR_WL_OUTPUTS set to >=2 */
- if (dev->output_name) {
- wlr_log(WLR_INFO, "map pointer to output %s\n", dev->output_name);
+ if (dev->type == WLR_INPUT_DEVICE_POINTER) {
+ wlr_log(WLR_INFO, "map pointer to output %s\n",
+ dev->pointer->output_name);
struct wlr_output *output =
- output_by_name(seat->server, dev->output_name);
+ output_by_name(seat->server, dev->pointer->output_name);
wlr_cursor_map_input_to_output(seat->cursor, dev, output);
wlr_cursor_map_input_to_region(seat->cursor, dev, NULL);
}