cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9ba662bd636a21f8fe4f6620d947d623ad99316f

commit 9ba662bd636a21f8fe4f6620d947d623ad99316f
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Fri Aug 25 10:52:22 2017 -0700

    evas: destroy seats and inputs before the display disapear.
---
 src/lib/evas/canvas/evas_main.c | 42 ++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index 0ebe72d9ed..9a8e1992d2 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -378,6 +378,27 @@ next_zombie:
    evas_event_callback_all_del(eo_e);
    evas_event_callback_cleanup(eo_e);
 
+   EINA_LIST_FREE(e->touch_points, touch_point)
+     free(touch_point);
+
+   _evas_device_cleanup(eo_e);
+   e->focused_by = eina_list_free(e->focused_by);
+
+   while (e->seats)
+     {
+        Evas_Pointer_Seat *pseat = EINA_INLIST_CONTAINER_GET(e->seats, 
Evas_Pointer_Seat);
+
+        eina_list_free(pseat->object.in);
+        while (pseat->pointers)
+          {
+             Evas_Pointer_Data *pdata = 
EINA_INLIST_CONTAINER_GET(pseat->pointers, Evas_Pointer_Data);
+             pseat->pointers = eina_inlist_remove(pseat->pointers, 
pseat->pointers);
+             free(pdata);
+          }
+        e->seats = eina_inlist_remove(e->seats, e->seats);
+        free(pseat);
+     }
+
    /* Ector surface may require an existing output to finish its job */
    e->engine.func->ector_destroy(_evas_engine_context(e), e->ector);
    /* cleanup engine backend */
@@ -424,27 +445,6 @@ next_zombie:
      }
    SLKU(e->post_render.lock);
 
-   EINA_LIST_FREE(e->touch_points, touch_point)
-     free(touch_point);
-
-   _evas_device_cleanup(eo_e);
-   e->focused_by = eina_list_free(e->focused_by);
-
-   while (e->seats)
-     {
-        Evas_Pointer_Seat *pseat = EINA_INLIST_CONTAINER_GET(e->seats, 
Evas_Pointer_Seat);
-
-        eina_list_free(pseat->object.in);
-        while (pseat->pointers)
-          {
-             Evas_Pointer_Data *pdata = 
EINA_INLIST_CONTAINER_GET(pseat->pointers, Evas_Pointer_Data);
-             pseat->pointers = eina_inlist_remove(pseat->pointers, 
pseat->pointers);
-             free(pdata);
-          }
-        e->seats = eina_inlist_remove(e->seats, e->seats);
-        free(pseat);
-     }
-
    eina_lock_free(&(e->lock_objects));
    eina_spinlock_free(&(e->render.lock));
    eina_spinlock_free(&(e->post_render.lock));

-- 


Reply via email to