raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4684647c4d2f672ab60bd27282c761fb58b3206c
commit 4684647c4d2f672ab60bd27282c761fb58b3206c Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Mon Feb 17 17:08:18 2014 +0900 more thread example fixes this should cover fixes for T956 --- src/examples/efl_thread_1.c | 14 +++++++++----- src/examples/efl_thread_2.c | 13 +++++++++---- src/examples/efl_thread_3.c | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/examples/efl_thread_1.c b/src/examples/efl_thread_1.c index 6d8bdc8..7154da6 100644 --- a/src/examples/efl_thread_1.c +++ b/src/examples/efl_thread_1.c @@ -45,16 +45,21 @@ my_thread_new(void) perror("pthread_create"); } +// on window delete - cancel thread then delete window and exit mainloop +static void +del(void *data, Evas_Object *obj, void *event_info) +{ + exit(0); +} + EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *o; - elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); - win = elm_win_util_standard_add("efl-thread-1", "EFL Thread 1"); - elm_win_autodel_set(win, EINA_TRUE); - + evas_object_smart_callback_add(win, "delete,request", del, NULL); + o = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_color_set(o, 50, 80, 180, 255); evas_object_resize(o, 100, 100); @@ -68,7 +73,6 @@ elm_main(int argc, char **argv) evas_object_show(win); elm_run(); - elm_shutdown(); return 0; } diff --git a/src/examples/efl_thread_2.c b/src/examples/efl_thread_2.c index a051120..6c2c178 100644 --- a/src/examples/efl_thread_2.c +++ b/src/examples/efl_thread_2.c @@ -61,15 +61,21 @@ my_thread_mainloop_code(void *data) return NULL; } +// on window delete - cancel thread then delete window and exit mainloop +static void +del(void *data, Evas_Object *obj, void *event_info) +{ + exit(0); +} + EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *o; win = elm_win_util_standard_add("efl-thread-2", "EFL Thread 2"); - elm_win_autodel_set(win, EINA_TRUE); - elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); - + evas_object_smart_callback_add(win, "delete,request", del, NULL); + o = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_color_set(o, 50, 80, 180, 255); evas_object_resize(o, 100, 100); @@ -83,7 +89,6 @@ elm_main(int argc, char **argv) evas_object_show(win); elm_run(); - elm_shutdown(); return 0; } diff --git a/src/examples/efl_thread_3.c b/src/examples/efl_thread_3.c index 77d8fb6..36ba69f 100644 --- a/src/examples/efl_thread_3.c +++ b/src/examples/efl_thread_3.c @@ -63,6 +63,7 @@ my_thread_mainloop_code(void *data) free(inf); } +// on window delete - cancel thread then delete window and exit mainloop static void del(void *data, Evas_Object *obj, void *event_info) { --