netstar pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=111f2fe89c43b3041014567bf270d07b7c8eea3c

commit 111f2fe89c43b3041014567bf270d07b7c8eea3c
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Sep 12 20:01:57 2018 +0100

    efl_ui_focus_manager_calc: invalidate obj on delete.
    
    Summary:
    In some situations focus is being set to a deleted object.
    Use EFL_EVENT_INVALIDATE on object deletion not
    EFL_EVENT_DEL. This prevents the object to be again selected for restoring 
focus when a redirect is deleted.
    
    This fixes SEGV with some widgets including popup tests.
    
    Test Plan:
    * elementary_test -to popup
    * popup-center-text + 3 button (check add, remove buttons).
    * Close popup, enter text (reopen popup and repeat).
    * Crash should be avoided.
    
    Reviewers: bu5hm4n, zmike
    
    Reviewed By: bu5hm4n
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D7026
---
 src/lib/elementary/efl_ui_focus_manager_calc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c 
b/src/lib/elementary/efl_ui_focus_manager_calc.c
index 8f05d8a723..a366271146 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -470,11 +470,11 @@ _object_del_cb(void *data, const Efl_Event *event)
 EFL_CALLBACKS_ARRAY_DEFINE(regular_node,
     {EFL_GFX_ENTITY_EVENT_RESIZE, _node_new_geometry_cb},
     {EFL_GFX_ENTITY_EVENT_MOVE, _node_new_geometry_cb},
-    {EFL_EVENT_DEL, _object_del_cb},
+    {EFL_EVENT_INVALIDATE, _object_del_cb},
 );
 
 EFL_CALLBACKS_ARRAY_DEFINE(logical_node,
-    {EFL_EVENT_DEL, _object_del_cb},
+    {EFL_EVENT_INVALIDATE, _object_del_cb},
 );
 
 

-- 


Reply via email to