mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
pointer: transform low-res to high-res axis events
Currently, the "wlr_event_pointer_axis" event stores low-resolution values in its "delta_discrete" field. Low-resolution values are always multiples of one, i.e., 1 for one wheel detent, 2 for two wheel detents, etc. In order to simplify internal handling of events, always transform in the backend from the low-resolution value into the high-resolution value. The transformation is performed by multiplying by 120. The 120 magic number is used by the kernel and it is exposed to clients in the "WLR_POINTER_AXIS_DISCRETE_STEP" constant.
This commit is contained in:
parent
c84cc660f0
commit
65c436407f
4 changed files with 5 additions and 2 deletions
|
|
@ -116,6 +116,7 @@ void handle_pointer_axis(struct libinput_event *event,
|
|||
libinput_event_pointer_get_axis_value(pevent, axes[i]);
|
||||
wlr_event.delta_discrete =
|
||||
libinput_event_pointer_get_axis_value_discrete(pevent, axes[i]);
|
||||
wlr_event.delta_discrete *= WLR_POINTER_AXIS_DISCRETE_STEP;
|
||||
wlr_signal_emit_safe(&pointer->events.axis, &wlr_event);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue