bu5hm4n pushed a commit to branch master.

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

commit a2a0ccf36b5becdd00005f339e03bb19154f8fdc
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Sun Nov 12 12:02:17 2017 +0100

    elm_widget_item_static_focus: do not accept the adapter as subchild
    
    The problem here was that the adapter we have created would be
    recognized as our subchild, and thus we delete our own subchild, which
    is wrong. This fixes that problem and keeps the adapter alive.
---
 src/lib/elementary/elm_widget_item_static_focus.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_widget_item_static_focus.c 
b/src/lib/elementary/elm_widget_item_static_focus.c
index 905bc264ec..8c56e0e154 100644
--- a/src/lib/elementary/elm_widget_item_static_focus.c
+++ b/src/lib/elementary/elm_widget_item_static_focus.c
@@ -15,11 +15,14 @@ typedef struct {
 EOLIAN static void
 _elm_widget_item_static_focus_efl_ui_focus_object_prepare_logical(Eo *obj, 
Elm_Widget_Item_Static_Focus_Data *pd EINA_UNUSED)
 {
+   Eo *logical_child;
    Elm_Widget_Item_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_ITEM_CLASS);
 
    efl_ui_focus_object_prepare_logical(efl_super(obj, 
ELM_WIDGET_ITEM_STATIC_FOCUS_CLASS));
+   logical_child = efl_ui_focus_manager_request_subchild(wpd->widget, obj);
 
-   if (!efl_ui_focus_manager_request_subchild(wpd->widget, obj))
+
+   if (!logical_child)
      {
         if (!pd->adapter)
           {
@@ -28,7 +31,7 @@ 
_elm_widget_item_static_focus_efl_ui_focus_object_prepare_logical(Eo *obj, Elm_W
              efl_ui_focus_manager_calc_register(wpd->widget, pd->adapter, obj, 
NULL);
           }
      }
-   else if (pd->adapter)
+   else if (logical_child && logical_child != pd->adapter)
      {
         efl_ui_focus_manager_calc_unregister(wpd->widget, pd->adapter);
         efl_del(pd->adapter);

-- 


Reply via email to