elm_toolbar: use the correct flag to detect wether a item is visible
fix T6806
This commit is contained in:
parent
03efb59da9
commit
36d9fdc770
|
@ -83,7 +83,8 @@ _toolbar_item_prio_compare_cb(const void *i1,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_items_visibility_fix(Elm_Toolbar_Data *sd,
|
_items_visibility_fix(Elm_Toolbar *obj,
|
||||||
|
Elm_Toolbar_Data *sd,
|
||||||
Evas_Coord *iw,
|
Evas_Coord *iw,
|
||||||
Evas_Coord vw,
|
Evas_Coord vw,
|
||||||
Eina_Bool *more)
|
Eina_Bool *more)
|
||||||
|
@ -139,6 +140,7 @@ _items_visibility_fix(Elm_Toolbar_Data *sd,
|
||||||
*more = EINA_TRUE;
|
*more = EINA_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
efl_ui_focus_composition_dirty(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -381,12 +383,12 @@ _resize_job(void *data)
|
||||||
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
||||||
{
|
{
|
||||||
h = vh;
|
h = vh;
|
||||||
_items_visibility_fix(sd, &ih, vh, &more);
|
_items_visibility_fix(obj, sd, &ih, vh, &more);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
w = vw;
|
w = vw;
|
||||||
_items_visibility_fix(sd, &iw, vw, &more);
|
_items_visibility_fix(obj, sd, &iw, vw, &more);
|
||||||
}
|
}
|
||||||
evas_object_geometry_get
|
evas_object_geometry_get
|
||||||
(sd->VIEW(more_item), NULL, NULL, &more_w, &more_h);
|
(sd->VIEW(more_item), NULL, NULL, &more_w, &more_h);
|
||||||
|
@ -462,12 +464,12 @@ _resize_job(void *data)
|
||||||
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
||||||
{
|
{
|
||||||
h = vh;
|
h = vh;
|
||||||
_items_visibility_fix(sd, &ih, vh, &more);
|
_items_visibility_fix(obj, sd, &ih, vh, &more);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
w = vw;
|
w = vw;
|
||||||
_items_visibility_fix(sd, &iw, vw, &more);
|
_items_visibility_fix(obj, sd, &iw, vw, &more);
|
||||||
}
|
}
|
||||||
evas_object_box_remove_all(sd->bx, EINA_FALSE);
|
evas_object_box_remove_all(sd->bx, EINA_FALSE);
|
||||||
if ((!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (ih > vh)) ||
|
if ((!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (ih > vh)) ||
|
||||||
|
@ -505,9 +507,9 @@ _resize_job(void *data)
|
||||||
w = (vw >= mw) ? vw : mw;
|
w = (vw >= mw) ? vw : mw;
|
||||||
|
|
||||||
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
|
||||||
_items_visibility_fix(sd, &ih, vh, &more);
|
_items_visibility_fix(obj, sd, &ih, vh, &more);
|
||||||
else
|
else
|
||||||
_items_visibility_fix(sd, &iw, vw, &more);
|
_items_visibility_fix(obj, sd, &iw, vw, &more);
|
||||||
|
|
||||||
evas_object_box_remove_all(sd->bx, EINA_FALSE);
|
evas_object_box_remove_all(sd->bx, EINA_FALSE);
|
||||||
evas_object_box_remove_all(sd->bx_more, EINA_FALSE);
|
evas_object_box_remove_all(sd->bx_more, EINA_FALSE);
|
||||||
|
@ -2464,6 +2466,8 @@ _item_new(Evas_Object *obj,
|
||||||
|
|
||||||
edje_object_message_signal_process(elm_layout_edje_get(VIEW(it)));
|
edje_object_message_signal_process(elm_layout_edje_get(VIEW(it)));
|
||||||
|
|
||||||
|
efl_ui_focus_composition_dirty(obj);
|
||||||
|
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(VIEW(it), EVAS_CALLBACK_RESIZE, _item_resize, obj);
|
(VIEW(it), EVAS_CALLBACK_RESIZE, _item_resize, obj);
|
||||||
if ((!sd->items) && (sd->select_mode == ELM_OBJECT_SELECT_MODE_ALWAYS))
|
if ((!sd->items) && (sd->select_mode == ELM_OBJECT_SELECT_MODE_ALWAYS))
|
||||||
|
@ -4057,7 +4061,7 @@ _part_of_chain(Elm_Toolbar_Item_Data *pd)
|
||||||
if (elm_wdg_item_disabled_get(pd->base->eo_obj))
|
if (elm_wdg_item_disabled_get(pd->base->eo_obj))
|
||||||
want = EINA_FALSE;
|
want = EINA_FALSE;
|
||||||
|
|
||||||
if (!evas_object_visible_get(VIEW(pd)))
|
if (!pd->prio.visible)
|
||||||
want = EINA_FALSE;
|
want = EINA_FALSE;
|
||||||
|
|
||||||
if (pd->separator)
|
if (pd->separator)
|
||||||
|
@ -4071,14 +4075,16 @@ _elm_toolbar_efl_ui_focus_composition_prepare(Eo *obj, Elm_Toolbar_Data *pd)
|
||||||
{
|
{
|
||||||
Elm_Toolbar_Item_Data *it;
|
Elm_Toolbar_Item_Data *it;
|
||||||
Eina_List *order = NULL;
|
Eina_List *order = NULL;
|
||||||
|
Eina_Bool require_more_items = EINA_FALSE;
|
||||||
|
|
||||||
EINA_INLIST_FOREACH(pd->items, it)
|
EINA_INLIST_FOREACH(pd->items, it)
|
||||||
{
|
{
|
||||||
if (_part_of_chain(it))
|
if (_part_of_chain(it))
|
||||||
order = eina_list_append(order, EO_OBJ(it));
|
order = eina_list_append(order, EO_OBJ(it));
|
||||||
|
if (!it->prio.visible) require_more_items = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pd->more_item)
|
if (require_more_items)
|
||||||
{
|
{
|
||||||
if (_part_of_chain(pd->more_item))
|
if (_part_of_chain(pd->more_item))
|
||||||
order = eina_list_append(order, EO_OBJ(pd->more_item));
|
order = eina_list_append(order, EO_OBJ(pd->more_item));
|
||||||
|
|
Loading…
Reference in New Issue