forked from enlightenment/efl
efl_ui_focus_object: Don't pass NULL to child_focus_set
When starting elementary_test, efl_ui_focus_object_child_focus_set is getting passed NULL on startup because elm_test window has no parent. This makes it difficult to debug and fix T7030 issues. In order to fix the issue, this patch checks for a valid parent before calling efl_ui_focus_object_child_focus_set so that it no longer gets passed NULL on elm_test startup and we can set breakpoints on eo.c:637 without getting interrupted at startup. ref T7030 Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D7677
This commit is contained in:
parent
fc48e19b56
commit
c98288c20e
|
@ -16,10 +16,14 @@ typedef struct {
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_focus_object_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, Eina_Bool focus)
|
_efl_ui_focus_object_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, Eina_Bool focus)
|
||||||
{
|
{
|
||||||
|
Efl_Ui_Focus_Object *parent;
|
||||||
|
|
||||||
if (pd->old_focus == focus) return;
|
if (pd->old_focus == focus) return;
|
||||||
|
|
||||||
pd->old_focus = focus;
|
pd->old_focus = focus;
|
||||||
efl_ui_focus_object_child_focus_set(efl_ui_focus_object_focus_parent_get(obj), focus);
|
parent = efl_ui_focus_object_focus_parent_get(obj);
|
||||||
|
if (parent)
|
||||||
|
efl_ui_focus_object_child_focus_set(parent, focus);
|
||||||
efl_event_callback_call(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED , (void*) (uintptr_t) focus);
|
efl_event_callback_call(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED , (void*) (uintptr_t) focus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,10 +48,14 @@ _efl_ui_focus_object_prepare_logical(Eo *obj, Efl_Ui_Focus_Object_Data *pd)
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_focus_object_child_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, Eina_Bool child_focus)
|
_efl_ui_focus_object_child_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, Eina_Bool child_focus)
|
||||||
{
|
{
|
||||||
|
Efl_Ui_Focus_Object *parent;
|
||||||
|
|
||||||
if (child_focus == pd->child_focus) return;
|
if (child_focus == pd->child_focus) return;
|
||||||
|
|
||||||
pd->child_focus = child_focus;
|
pd->child_focus = child_focus;
|
||||||
efl_ui_focus_object_child_focus_set(efl_ui_focus_object_focus_parent_get(obj), pd->child_focus);
|
parent = efl_ui_focus_object_focus_parent_get(obj);
|
||||||
|
if (parent)
|
||||||
|
efl_ui_focus_object_child_focus_set(parent, pd->child_focus);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue