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/input.c b/src/input.c
index 9c51468..2c799f4 100644
--- a/src/input.c
+++ b/src/input.c
@@ -287,6 +287,15 @@
 }
 
 static void
+default_grab_touch_frame(struct weston_touch_grab *grab)
+{
+	struct wl_resource *resource;
+
+	wl_resource_for_each(resource, &grab->touch->focus_resource_list)
+		wl_touch_send_frame(resource);
+}
+
+static void
 default_grab_touch_cancel(struct weston_touch_grab *grab)
 {
 }
@@ -295,6 +304,7 @@
 	default_grab_touch_down,
 	default_grab_touch_up,
 	default_grab_touch_motion,
+	default_grab_touch_frame,
 	default_grab_touch_cancel,
 };
 
@@ -1512,6 +1522,15 @@
 	}
 }
 
+WL_EXPORT void
+notify_touch_frame(struct weston_seat *seat)
+{
+	struct weston_touch *touch = seat->touch;
+	struct weston_touch_grab *grab = touch->grab;
+
+	grab->interface->frame(grab);
+}
+
 static void
 pointer_cursor_surface_configure(struct weston_surface *es,
 				 int32_t dx, int32_t dy)