summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2019-08-21 17:20:50 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2019-08-21 17:20:50 +0000
commit21a88dc739c19e32b2c52f3bde34e8ad993fd8ba (patch)
tree1908ad9f571ee074da6f71403d1cdb9c487a5631
parente20594f83bd123c9904c18d6b3fd766c1433cd2c (diff)
parentf829ddf31449f76292a0f0a2c3e7269802d41a32 (diff)
downloadclutter-21a88dc739c19e32b2c52f3bde34e8ad993fd8ba.tar.gz
Merge branch 'wip/smcv/issue8' into 'master'
tests/conform: Fix actor-offscreen-redirect Closes #8 See merge request GNOME/clutter!6
-rw-r--r--tests/conform/actor-offscreen-redirect.c49
1 files changed, 30 insertions, 19 deletions
diff --git a/tests/conform/actor-offscreen-redirect.c b/tests/conform/actor-offscreen-redirect.c
index f47af3617..63d5e6cfd 100644
--- a/tests/conform/actor-offscreen-redirect.c
+++ b/tests/conform/actor-offscreen-redirect.c
@@ -177,6 +177,33 @@ verify_redraw (Data *data, int expected_paint_count)
}
static gboolean
+verify_redraws (gpointer user_data)
+{
+ Data *data = user_data;
+
+ /* Queueing a redraw on the actor should cause a redraw */
+ clutter_actor_queue_redraw (data->container);
+ verify_redraw (data, 1);
+
+ /* Queueing a redraw on a child should cause a redraw */
+ clutter_actor_queue_redraw (data->child);
+ verify_redraw (data, 1);
+
+ /* Modifying the transformation on the parent should cause a
+ redraw */
+ clutter_actor_set_anchor_point (data->parent_container, 0, 1);
+ verify_redraw (data, 1);
+
+ /* Redrawing an unrelated actor shouldn't cause a redraw */
+ clutter_actor_set_position (data->unrelated_actor, 0, 1);
+ verify_redraw (data, 0);
+
+ data->was_painted = TRUE;
+
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean
run_verify (gpointer user_data)
{
Data *data = user_data;
@@ -273,24 +300,8 @@ run_verify (gpointer user_data)
0,
255);
- /* Queueing a redraw on the actor should cause a redraw */
- clutter_actor_queue_redraw (data->container);
- verify_redraw (data, 1);
-
- /* Queueing a redraw on a child should cause a redraw */
- clutter_actor_queue_redraw (data->child);
- verify_redraw (data, 1);
-
- /* Modifying the transformation on the parent should cause a
- redraw */
- clutter_actor_set_anchor_point (data->parent_container, 0, 1);
- verify_redraw (data, 1);
-
- /* Redrawing an unrelated actor shouldn't cause a redraw */
- clutter_actor_set_position (data->unrelated_actor, 0, 1);
- verify_redraw (data, 0);
-
- data->was_painted = TRUE;
+ /* Check redraws */
+ g_idle_add (verify_redraws, data);
return G_SOURCE_REMOVE;
}
@@ -298,7 +309,7 @@ run_verify (gpointer user_data)
static void
actor_offscreen_redirect (void)
{
- Data data;
+ Data data = { 0 };
if (!cogl_features_available (COGL_FEATURE_OFFSCREEN))
return;