From 14ac6a9e9ed761f6d1e975babea77090fc1e422e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 26 Jun 2019 12:23:32 -0400 Subject: [PATCH] tests/elm: add helper function for simplifying getting to event triggering the usual method is calc -> post render -> job to ensure everything is set up. this simplifies getting to that job. Reviewed-by: Chris Michael Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9186 --- src/tests/elementary/suite_helpers.c | 25 +++++++++++++++++++++++++ src/tests/elementary/suite_helpers.h | 1 + 2 files changed, 26 insertions(+) diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index e5d43c38b9..6b7ffebc78 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c @@ -358,3 +358,28 @@ fail_on_errors_setup(void) eina_log_abort_on_critical_level_set(2); eina_log_abort_on_critical_set(1); } + +static void +next_event_job() +{ + ecore_main_loop_quit(); +} + +static void +events_norendered(void *data EINA_UNUSED, Evas *e, void *event_info EINA_UNUSED) +{ + evas_event_callback_del(e, EVAS_CALLBACK_RENDER_POST, events_norendered); + ecore_job_add(next_event_job, NULL); +} + +void +get_me_to_those_events(Eo *obj) +{ + Evas *e = obj; + + if (!efl_isa(obj, EFL_CANVAS_SCENE_INTERFACE)) + e = evas_object_evas_get(obj); + evas_smart_objects_calculate(e); + evas_event_callback_add(e, EVAS_CALLBACK_RENDER_POST, events_norendered, NULL); + ecore_main_loop_begin(); +} diff --git a/src/tests/elementary/suite_helpers.h b/src/tests/elementary/suite_helpers.h index 75cc0487d3..12536d3884 100644 --- a/src/tests/elementary/suite_helpers.h +++ b/src/tests/elementary/suite_helpers.h @@ -10,4 +10,5 @@ void *real_timer_add(double in, Ecore_Task_Cb cb, void *data); void fail_on_errors_teardown(void); void fail_on_errors_setup(void); +void get_me_to_those_events(Eo *obj); #endif