nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=c66d8e3dd0c4d3d9ccb46f98f24d47ecb1fc06de
commit c66d8e3dd0c4d3d9ccb46f98f24d47ecb1fc06de Author: Andrii Kroitor <[email protected]> Date: Fri Jul 22 14:39:58 2016 +0300 mwin: don't delete inwin On efl1.16 unswallowed content is marked for deletion when its ex-parent is deleted. Can't find what commit fixes this behaviour on upstream, so this is workaround: hide inwin and reuse it later. --- src/bin/ui/modal_window/modal_window.c | 46 ++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/bin/ui/modal_window/modal_window.c b/src/bin/ui/modal_window/modal_window.c index 80bf3db..5b37adb 100644 --- a/src/bin/ui/modal_window/modal_window.c +++ b/src/bin/ui/modal_window/modal_window.c @@ -113,7 +113,7 @@ _anim_hide_finish(void *data, evas_object_image_source_visible_set(img, true); evas_object_del(obj); shortcuts_object_check_pop(mw); - evas_object_del(mw); + evas_object_hide(mw); } #define ANIM_ACTION(NAME) \ @@ -187,26 +187,30 @@ mw_del(Evas_Object *mw) Evas_Object * mw_add(void) { - Evas_Object *mw, *btn; - - mw = elm_win_inwin_add(ap.win); - elm_object_style_set(mw, "modal_window"); - evas_object_event_callback_add(mw, EVAS_CALLBACK_SHOW, _anim_show, ap.win); - - evas_object_focus_set(mw, true); - - BUTTON_ADD(mw, btn, NULL); - elm_object_style_set(btn, "close"); - evas_object_smart_callback_add(btn, "clicked", _mw_close, mw); - elm_object_part_content_set(mw, "elm.swallow.close", btn); - - BUTTON_ADD(mw, btn, _("Cancel")) - evas_object_smart_callback_add(btn, "clicked", _mw_close, mw); - elm_object_part_content_set(mw, "eflete.swallow.btn_close", btn); - - BUTTON_ADD(mw, btn, _("Ok")) - evas_object_smart_callback_add(btn, "clicked", _mw_done, mw); - elm_object_part_content_set(mw, "eflete.swallow.btn_ok", btn); + Evas_Object *btn; + static Evas_Object *mw = NULL; + + if (!mw) + { + mw = elm_win_inwin_add(ap.win); + elm_object_style_set(mw, "modal_window"); + evas_object_event_callback_add(mw, EVAS_CALLBACK_SHOW, _anim_show, ap.win); + + evas_object_focus_set(mw, true); + + BUTTON_ADD(mw, btn, NULL); + elm_object_style_set(btn, "close"); + evas_object_smart_callback_add(btn, "clicked", _mw_close, mw); + elm_object_part_content_set(mw, "elm.swallow.close", btn); + + BUTTON_ADD(mw, btn, _("Cancel")) + evas_object_smart_callback_add(btn, "clicked", _mw_close, mw); + elm_object_part_content_set(mw, "eflete.swallow.btn_close", btn); + + BUTTON_ADD(mw, btn, _("Ok")) + evas_object_smart_callback_add(btn, "clicked", _mw_done, mw); + elm_object_part_content_set(mw, "eflete.swallow.btn_ok", btn); + } shortcuts_object_push(mw); --
