mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-05 05:05:57 +01:00
backend/wayland: handle high-res scroll events
Receive high-resolution scroll events from the parent compositor using a Wayland listiner and emit the appropiate wlr_pointer signal.
This commit is contained in:
parent
e00f042f80
commit
11f49b6b6a
2 changed files with 20 additions and 1 deletions
|
@ -346,8 +346,15 @@ static void registry_global(void *data, struct wl_registry *registry,
|
|||
wl->compositor = wl_registry_bind(registry, name,
|
||||
&wl_compositor_interface, 4);
|
||||
} else if (strcmp(iface, wl_seat_interface.name) == 0) {
|
||||
uint32_t target_version = version;
|
||||
if (version < 5) {
|
||||
target_version = 5;
|
||||
}
|
||||
if (version > 8) {
|
||||
target_version = 8;
|
||||
}
|
||||
struct wl_seat *wl_seat = wl_registry_bind(registry, name,
|
||||
&wl_seat_interface, 5);
|
||||
&wl_seat_interface, target_version);
|
||||
if (!create_wl_seat(wl_seat, wl)) {
|
||||
wl_seat_destroy(wl_seat);
|
||||
}
|
||||
|
|
|
@ -187,6 +187,17 @@ static void pointer_handle_axis_discrete(void *data,
|
|||
pointer->axis_discrete = discrete * WLR_POINTER_AXIS_DISCRETE_STEP;
|
||||
}
|
||||
|
||||
static void pointer_handle_axis_value120(void *data,
|
||||
struct wl_pointer *wl_pointer, uint32_t axis, int32_t value120) {
|
||||
struct wlr_wl_seat *seat = data;
|
||||
struct wlr_wl_pointer *pointer = seat->active_pointer;
|
||||
if (pointer == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
pointer->axis_discrete = value120;
|
||||
}
|
||||
|
||||
static const struct wl_pointer_listener pointer_listener = {
|
||||
.enter = pointer_handle_enter,
|
||||
.leave = pointer_handle_leave,
|
||||
|
@ -197,6 +208,7 @@ static const struct wl_pointer_listener pointer_listener = {
|
|||
.axis_source = pointer_handle_axis_source,
|
||||
.axis_stop = pointer_handle_axis_stop,
|
||||
.axis_discrete = pointer_handle_axis_discrete,
|
||||
.axis_value120 = pointer_handle_axis_value120,
|
||||
};
|
||||
|
||||
static void gesture_swipe_begin(void *data,
|
||||
|
|
Loading…
Reference in a new issue