aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/libinput/pointer.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/backend/libinput/pointer.c b/backend/libinput/pointer.c
index 50b63c90..841d3dfc 100644
--- a/backend/libinput/pointer.c
+++ b/backend/libinput/pointer.c
@@ -103,22 +103,24 @@ void handle_pointer_axis(struct libinput_event *event,
LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL,
};
for (size_t i = 0; i < sizeof(axes) / sizeof(axes[0]); ++i) {
- if (libinput_event_pointer_has_axis(pevent, axes[i])) {
- switch (axes[i]) {
- case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
- wlr_event.orientation = WLR_AXIS_ORIENTATION_VERTICAL;
- break;
- case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
- wlr_event.orientation = WLR_AXIS_ORIENTATION_HORIZONTAL;
- break;
- }
- wlr_event.delta =
- 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);
+ if (!libinput_event_pointer_has_axis(pevent, axes[i])) {
+ continue;
+ }
+
+ switch (axes[i]) {
+ case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
+ wlr_event.orientation = WLR_AXIS_ORIENTATION_VERTICAL;
+ break;
+ case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
+ wlr_event.orientation = WLR_AXIS_ORIENTATION_HORIZONTAL;
+ break;
}
+ wlr_event.delta =
+ 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);
}
wlr_signal_emit_safe(&pointer->events.frame, pointer);
}