mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 21:05:58 +01:00
backend/libinput: send touch frame events
This commit is contained in:
parent
84906a832f
commit
2d36d7fb67
3 changed files with 14 additions and 1 deletions
|
@ -271,7 +271,7 @@ void handle_libinput_event(struct wlr_libinput_backend *backend,
|
||||||
handle_touch_cancel(event, libinput_dev);
|
handle_touch_cancel(event, libinput_dev);
|
||||||
break;
|
break;
|
||||||
case LIBINPUT_EVENT_TOUCH_FRAME:
|
case LIBINPUT_EVENT_TOUCH_FRAME:
|
||||||
// no-op (at least for now)
|
handle_touch_frame(event, libinput_dev);
|
||||||
break;
|
break;
|
||||||
case LIBINPUT_EVENT_TABLET_TOOL_AXIS:
|
case LIBINPUT_EVENT_TABLET_TOOL_AXIS:
|
||||||
handle_tablet_tool_axis(event, libinput_dev);
|
handle_tablet_tool_axis(event, libinput_dev);
|
||||||
|
|
|
@ -95,3 +95,14 @@ void handle_touch_cancel(struct libinput_event *event,
|
||||||
wlr_event.touch_id = libinput_event_touch_get_seat_slot(tevent);
|
wlr_event.touch_id = libinput_event_touch_get_seat_slot(tevent);
|
||||||
wlr_signal_emit_safe(&wlr_dev->touch->events.cancel, &wlr_event);
|
wlr_signal_emit_safe(&wlr_dev->touch->events.cancel, &wlr_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handle_touch_frame(struct libinput_event *event,
|
||||||
|
struct libinput_device *libinput_dev) {
|
||||||
|
struct wlr_input_device *wlr_dev =
|
||||||
|
get_appropriate_device(WLR_INPUT_DEVICE_TOUCH, libinput_dev);
|
||||||
|
if (!wlr_dev) {
|
||||||
|
wlr_log(WLR_DEBUG, "Got a touch event for a device with no touch?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
wlr_signal_emit_safe(&wlr_dev->touch->events.frame, NULL);
|
||||||
|
}
|
||||||
|
|
|
@ -82,6 +82,8 @@ void handle_touch_motion(struct libinput_event *event,
|
||||||
struct libinput_device *device);
|
struct libinput_device *device);
|
||||||
void handle_touch_cancel(struct libinput_event *event,
|
void handle_touch_cancel(struct libinput_event *event,
|
||||||
struct libinput_device *device);
|
struct libinput_device *device);
|
||||||
|
void handle_touch_frame(struct libinput_event *event,
|
||||||
|
struct libinput_device *device);
|
||||||
|
|
||||||
struct wlr_tablet *create_libinput_tablet(
|
struct wlr_tablet *create_libinput_tablet(
|
||||||
struct libinput_device *device);
|
struct libinput_device *device);
|
||||||
|
|
Loading…
Reference in a new issue