From f7ad7e6c0fcfb8d6c085b8c9fe5ffffb0d2d6bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Tue, 12 Nov 2019 18:40:34 +0100 Subject: [PATCH] tests/clutter/touch-events: Use ClutterCanvas to draw touch Change the interactive touch events test case to use ClutterCanvas to draw touch points instead of using ClutterCairoTexture. https://gitlab.gnome.org/GNOME/mutter/merge_requests/932 --- .../clutter/interactive/test-touch-events.c | 44 ++++++------------- 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/src/tests/clutter/interactive/test-touch-events.c b/src/tests/clutter/interactive/test-touch-events.c index fd23838ca..14ad6d314 100644 --- a/src/tests/clutter/interactive/test-touch-events.c +++ b/src/tests/clutter/interactive/test-touch-events.c @@ -51,12 +51,6 @@ test_touch_events_main (int argc, char *argv[]); const char * test_touch_events_describe (void); -static void -canvas_paint (ClutterCairoTexture *canvas) -{ - clutter_cairo_texture_invalidate (canvas); -} - static void draw_touch (ClutterEvent *event, cairo_t *cr) @@ -80,8 +74,10 @@ draw_touch (ClutterEvent *event, } static gboolean -draw_touches (ClutterCairoTexture *canvas, - cairo_t *cr) +draw_touches (ClutterCanvas *canvas, + cairo_t *cr, + int width, + int height) { g_queue_foreach (new_surface ? &all_events : &events, (GFunc) draw_touch, cr); g_queue_clear (&events); @@ -91,17 +87,6 @@ draw_touches (ClutterCairoTexture *canvas, return TRUE; } -static cairo_surface_t * -create_surface (ClutterCairoTexture *texture, - guint width, - guint height, - gpointer user_data) -{ - new_surface = TRUE; - - return NULL; -} - static gboolean event_cb (ClutterActor *actor, ClutterEvent *event, ClutterActor *canvas) { @@ -135,7 +120,8 @@ rect_event_cb (ClutterActor *actor, ClutterEvent *event, gpointer data) G_MODULE_EXPORT int test_touch_events_main (int argc, char *argv[]) { - ClutterActor *stage, *canvas; + ClutterActor *stage, *canvas_actor; + ClutterContent *canvas; int i; /* initialize Clutter */ @@ -151,18 +137,16 @@ test_touch_events_main (int argc, char *argv[]) clutter_actor_show (stage); /* our 2D canvas, courtesy of Cairo */ - canvas = clutter_cairo_texture_new (1, 1); - g_signal_connect (canvas, "paint", G_CALLBACK (canvas_paint), NULL); + canvas = clutter_canvas_new (); + clutter_canvas_set_size (CLUTTER_CANVAS (canvas), STAGE_WIDTH, STAGE_HEIGHT); g_signal_connect (canvas, "draw", G_CALLBACK (draw_touches), NULL); - g_signal_connect (canvas, "create-surface", G_CALLBACK (create_surface), NULL); - clutter_cairo_texture_set_auto_resize (CLUTTER_CAIRO_TEXTURE (canvas), TRUE); - clutter_actor_add_constraint (canvas, - clutter_bind_constraint_new (stage, - CLUTTER_BIND_SIZE, - 0)); - clutter_container_add_actor (CLUTTER_CONTAINER (stage), canvas); - g_signal_connect (stage, "event", G_CALLBACK (event_cb), canvas); + canvas_actor = g_object_new (CLUTTER_TYPE_ACTOR, + "content", canvas, + NULL); + clutter_container_add_actor (CLUTTER_CONTAINER (stage), canvas_actor); + + g_signal_connect (stage, "event", G_CALLBACK (event_cb), canvas_actor); for (i = 0; i < NUM_ACTORS; i++) {