efl_ui_widget: move from elm_widget_top_get to provider_find

this resolves a lot of cases where focus_highlight API was called on a
object, which is not a efl_ui_win object. With this patch we ensure that
the object is always a window.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8476
This commit is contained in:
Marcel Hollerbach 2019-03-26 10:15:15 +01:00
parent fce4d95596
commit 0c0f47796b
3 changed files with 14 additions and 13 deletions

View File

@ -248,20 +248,21 @@ _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *eo_it)
void
_elm_widget_focus_highlight_start(const Evas_Object *obj)
{
Evas_Object *top = elm_widget_top_get(obj);
Evas_Object *top = efl_provider_find(obj, EFL_UI_WIN_CLASS);
if (top && efl_isa(top, EFL_UI_WIN_CLASS))
_elm_win_focus_highlight_start(top);
EINA_SAFETY_ON_FALSE_RETURN(efl_isa(top, EFL_UI_WIN_CLASS));
_elm_win_focus_highlight_start(top);
}
Evas_Object *
_efl_ui_widget_focus_highlight_object_get(const Evas_Object *obj)
{
Evas_Object *top = elm_widget_top_get(obj);
Evas_Object *top = efl_provider_find(obj, EFL_UI_WIN_CLASS);
if (top && efl_isa(top, EFL_UI_WIN_CLASS))
return _elm_win_focus_highlight_object_get(top);
return NULL;
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(top, EFL_UI_WIN_CLASS), NULL);
return _elm_win_focus_highlight_object_get(top);
}
static Eina_Bool

View File

@ -206,7 +206,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents)
Item_Cache *itc = NULL;
ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd);
Evas_Object *obj = sd->obj;
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
evas_event_freeze(evas_object_evas_get(obj));
if (sd->item_cache_max > 0)
@ -1569,7 +1569,7 @@ _elm_gengrid_item_focus_update(Elm_Gen_Item *it)
{
const char *focus_raise;
Evas_Object *obj = WIDGET(it);
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
ELM_GENGRID_DATA_GET(obj, sd);
if (elm_win_focus_highlight_enabled_get(win) || _elm_config->win_auto_focus_enable)
@ -2373,7 +2373,7 @@ _elm_gengrid_item_unfocused(Elm_Object_Item *eo_it)
{
ELM_GENGRID_ITEM_DATA_GET(eo_it, it);
Evas_Object *obj = WIDGET(it);
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
ELM_GENGRID_DATA_GET(obj, sd);
if (it->generation < sd->generation)

View File

@ -1599,7 +1599,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents)
Item_Cache *itc = NULL;
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
Evas_Object *obj = sd->obj;
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
Evas *e = evas_object_evas_get(obj);
evas_event_freeze(e);
@ -1809,7 +1809,7 @@ _elm_genlist_item_focus_update(Elm_Gen_Item *it)
{
const char *focus_raise;
Evas_Object *obj = WIDGET(it);
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
ELM_GENLIST_DATA_GET(obj, sd);
if (elm_win_focus_highlight_enabled_get(win)
@ -2907,7 +2907,7 @@ _elm_genlist_item_unfocused(Elm_Object_Item *eo_it)
ELM_GENLIST_ITEM_DATA_GET(eo_it, it);
Evas_Object *obj = WIDGET(it);
Evas_Object *win = elm_widget_top_get(obj);
Evas_Object *win = efl_provider_find(obj, EFL_UI_WIN_CLASS);
ELM_GENLIST_DATA_GET(obj, sd);
if (_is_no_select(it))