forked from enlightenment/efl
elementary: make toolbar 'more_item' properly self destruct.
This commit is contained in:
parent
2ce788063a
commit
f29e1db94b
|
@ -2286,7 +2286,7 @@ _access_state_cb(void *data, Evas_Object *obj EINA_UNUSED)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_toolbar_item_efl_object_destructor(Eo *eo_item, Elm_Toolbar_Item_Data *item)
|
||||
_elm_toolbar_item_efl_object_invalidate(Eo *eo_item, Elm_Toolbar_Item_Data *item)
|
||||
{
|
||||
Elm_Toolbar_Item_Data *next = NULL;
|
||||
Evas_Object *obj;
|
||||
|
@ -2315,7 +2315,7 @@ _elm_toolbar_item_efl_object_destructor(Eo *eo_item, Elm_Toolbar_Item_Data *item
|
|||
if (item != sd->more_item)
|
||||
efl_ui_widget_theme_apply(obj);
|
||||
|
||||
efl_destructor(efl_super(eo_item, ELM_TOOLBAR_ITEM_CLASS));
|
||||
efl_invalidate(efl_super(eo_item, ELM_TOOLBAR_ITEM_CLASS));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -3347,6 +3347,14 @@ _elm_toolbar_item_separator_get(const Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_
|
|||
return it->separator;
|
||||
}
|
||||
|
||||
static void
|
||||
_cleanup_more_item(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Elm_Toolbar_Data *sd = data;
|
||||
|
||||
sd->more_item = NULL;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_toolbar_shrink_mode_set(Eo *obj, Elm_Toolbar_Data *sd, Elm_Toolbar_Shrink_Mode shrink_mode)
|
||||
{
|
||||
|
@ -3359,11 +3367,7 @@ _elm_toolbar_shrink_mode_set(Eo *obj, Elm_Toolbar_Data *sd, Elm_Toolbar_Shrink_M
|
|||
(shrink_mode == ELM_TOOLBAR_SHRINK_SCROLL);
|
||||
elm_interface_scrollable_bounce_allow_set(obj, bounce, EINA_FALSE);
|
||||
|
||||
if (sd->more_item)
|
||||
{
|
||||
efl_del(EO_OBJ(sd->more_item));
|
||||
sd->more_item = NULL;
|
||||
}
|
||||
if (sd->more_item) efl_del(EO_OBJ(sd->more_item));
|
||||
|
||||
if (shrink_mode == ELM_TOOLBAR_SHRINK_MENU)
|
||||
{
|
||||
|
@ -3397,6 +3401,9 @@ _elm_toolbar_shrink_mode_set(Eo *obj, Elm_Toolbar_Data *sd, Elm_Toolbar_Shrink_M
|
|||
elm_interface_scrollable_policy_set
|
||||
(obj, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
|
||||
|
||||
if (sd->more_item)
|
||||
efl_event_callback_add(EO_OBJ(sd->more_item), EFL_EVENT_INVALIDATE, _cleanup_more_item, sd);
|
||||
|
||||
EINA_INLIST_FOREACH(sd->items, it)
|
||||
_item_shrink_signal_emit(VIEW(it), sd->shrink_mode);
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ class Elm.Toolbar_Item(Elm.Widget.Item, Efl.Ui.Focus.Object, Efl.Ui.Legacy)
|
|||
}
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.invalidate;
|
||||
Elm.Widget.Item.disable;
|
||||
Elm.Widget.Item.disabled { set; }
|
||||
Elm.Widget.Item.item_focus { get; set; }
|
||||
|
|
Loading…
Reference in New Issue