libinput: Forward frame events to clients

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77353

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/src/libinput-device.c b/src/libinput-device.c
index 6a321a4..0ca6c4b 100644
--- a/src/libinput-device.c
+++ b/src/libinput-device.c
@@ -187,6 +187,17 @@
 	notify_touch(device->seat, time, slot, 0, 0, WL_TOUCH_UP);
 }
 
+static void
+handle_touch_frame(struct libinput_device *libinput_device,
+		   struct libinput_event_touch *touch_event)
+{
+	struct evdev_device *device =
+		libinput_device_get_user_data(libinput_device);
+	struct weston_seat *seat = device->seat;
+
+	notify_touch_frame(seat);
+}
+
 int
 evdev_device_process_event(struct libinput_event *event)
 {
@@ -228,6 +239,10 @@
 		handle_touch_up(libinput_device,
 				libinput_event_get_touch_event(event));
 		break;
+	case LIBINPUT_EVENT_TOUCH_FRAME:
+		handle_touch_frame(libinput_device,
+				   libinput_event_get_touch_event(event));
+		break;
 	default:
 		handled = 0;
 		weston_log("unknown libinput event %d\n",