forked from enlightenment/efl
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:
parent
fce4d95596
commit
0c0f47796b
|
@ -248,20 +248,21 @@ _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *eo_it)
|
||||||
void
|
void
|
||||||
_elm_widget_focus_highlight_start(const Evas_Object *obj)
|
_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))
|
EINA_SAFETY_ON_FALSE_RETURN(efl_isa(top, EFL_UI_WIN_CLASS));
|
||||||
_elm_win_focus_highlight_start(top);
|
|
||||||
|
_elm_win_focus_highlight_start(top);
|
||||||
}
|
}
|
||||||
|
|
||||||
Evas_Object *
|
Evas_Object *
|
||||||
_efl_ui_widget_focus_highlight_object_get(const Evas_Object *obj)
|
_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))
|
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(top, EFL_UI_WIN_CLASS), NULL);
|
||||||
return _elm_win_focus_highlight_object_get(top);
|
|
||||||
return NULL;
|
return _elm_win_focus_highlight_object_get(top);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
|
|
@ -206,7 +206,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents)
|
||||||
Item_Cache *itc = NULL;
|
Item_Cache *itc = NULL;
|
||||||
ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd);
|
ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd);
|
||||||
Evas_Object *obj = sd->obj;
|
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));
|
evas_event_freeze(evas_object_evas_get(obj));
|
||||||
if (sd->item_cache_max > 0)
|
if (sd->item_cache_max > 0)
|
||||||
|
@ -1569,7 +1569,7 @@ _elm_gengrid_item_focus_update(Elm_Gen_Item *it)
|
||||||
{
|
{
|
||||||
const char *focus_raise;
|
const char *focus_raise;
|
||||||
Evas_Object *obj = WIDGET(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);
|
ELM_GENGRID_DATA_GET(obj, sd);
|
||||||
|
|
||||||
if (elm_win_focus_highlight_enabled_get(win) || _elm_config->win_auto_focus_enable)
|
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);
|
ELM_GENGRID_ITEM_DATA_GET(eo_it, it);
|
||||||
Evas_Object *obj = WIDGET(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);
|
ELM_GENGRID_DATA_GET(obj, sd);
|
||||||
|
|
||||||
if (it->generation < sd->generation)
|
if (it->generation < sd->generation)
|
||||||
|
|
|
@ -1599,7 +1599,7 @@ _item_cache_add(Elm_Gen_Item *it, Eina_List *contents)
|
||||||
Item_Cache *itc = NULL;
|
Item_Cache *itc = NULL;
|
||||||
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
|
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
|
||||||
Evas_Object *obj = sd->obj;
|
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 *e = evas_object_evas_get(obj);
|
||||||
|
|
||||||
evas_event_freeze(e);
|
evas_event_freeze(e);
|
||||||
|
@ -1809,7 +1809,7 @@ _elm_genlist_item_focus_update(Elm_Gen_Item *it)
|
||||||
{
|
{
|
||||||
const char *focus_raise;
|
const char *focus_raise;
|
||||||
Evas_Object *obj = WIDGET(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);
|
ELM_GENLIST_DATA_GET(obj, sd);
|
||||||
|
|
||||||
if (elm_win_focus_highlight_enabled_get(win)
|
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);
|
ELM_GENLIST_ITEM_DATA_GET(eo_it, it);
|
||||||
Evas_Object *obj = WIDGET(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);
|
ELM_GENLIST_DATA_GET(obj, sd);
|
||||||
|
|
||||||
if (_is_no_select(it))
|
if (_is_no_select(it))
|
||||||
|
|
Loading…
Reference in New Issue