Elm combobox: composite attach objects after reparenting.

This fixes the segfault reported by Jack.

The problem was that the object was being reparented and thus
removed from the composition and never added back.
This commit is contained in:
Tom Hacohen 2016-04-28 15:54:34 +01:00
parent fd422c48d1
commit 46ac246a31
1 changed files with 6 additions and 2 deletions

View File

@ -380,7 +380,6 @@ _elm_combobox_multiple_selection_set(Eo *obj, Elm_Combobox_Data *pd,
elm_object_part_text_set(pd->mbe, "guide", elm_object_part_text_get(pd->entry,
"guide"));
evas_object_hide(pd->entry);
eo_composite_attach(obj, pd->mbe);
scr = elm_scroller_add(obj);
elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);
@ -391,6 +390,8 @@ _elm_combobox_multiple_selection_set(Eo *obj, Elm_Combobox_Data *pd,
elm_object_content_set(scr, pd->mbe);
elm_object_part_content_set(obj, "elm.swallow.content", scr);
elm_widget_can_focus_set(pd->genlist, EINA_FALSE);
eo_composite_attach(obj, pd->mbe);
}
else
{
@ -402,6 +403,8 @@ _elm_combobox_multiple_selection_set(Eo *obj, Elm_Combobox_Data *pd,
elm_widget_can_focus_set(pd->genlist, EINA_TRUE);
elm_genlist_item_bring_in(pd->item, ELM_GENLIST_ITEM_SCROLLTO_NONE);
evas_object_hide(scr);
eo_composite_attach(obj, pd->entry);
}
}
@ -481,10 +484,11 @@ _elm_combobox_eo_base_constructor(Eo *obj, Elm_Combobox_Data *sd)
eo_event_callback_array_add(entry, entry_callbacks(), obj);
evas_object_show(entry);
elm_object_part_content_set(obj, "elm.swallow.content", entry);
eo_composite_attach(obj, gl);
eo_composite_attach(obj, entry);
elm_object_part_content_set(obj, "elm.swallow.content", entry);
return obj;
}