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);
 

-- 


Reply via email to