efl_ui/popup: implement efl.file.unload for popup backwall part
authorMike Blumenkrantz <zmike@samsung.com>
Fri, 26 Jul 2019 16:54:41 +0000 (12:54 -0400)
committerWooHyun Jung <wh0705.jung@samsung.com>
Mon, 5 Aug 2019 01:48:33 +0000 (10:48 +0900)
this fixes unsetting images for popup backwall

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9415

src/lib/elementary/efl_ui_popup.c
src/lib/elementary/efl_ui_popup_part_backwall.eo

index c60f137..8d7271e 100644 (file)
@@ -351,6 +351,22 @@ _efl_ui_popup_part_backwall_repeat_events_get(const Eo *obj, void *_pd EINA_UNUS
    return efl_canvas_object_repeat_events_get(sd->backwall);
 }
 
+EOLIAN static void
+_efl_ui_popup_part_backwall_efl_file_unload(Eo *obj, void *_pd EINA_UNUSED)
+{
+   Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
+   Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS);
+
+   efl_file_unload(efl_super(obj, EFL_UI_POPUP_PART_BACKWALL_CLASS));
+   Eo *prev_obj = edje_object_part_swallow_get(sd->backwall, "efl.content");
+   if (prev_obj)
+     {
+        edje_object_signal_emit(sd->backwall, "efl,state,content,unset", "efl");
+        edje_object_part_unswallow(sd->backwall, prev_obj);
+        efl_del(prev_obj);
+     }
+}
+
 EOLIAN static Eina_Error
 _efl_ui_popup_part_backwall_efl_file_load(Eo *obj, void *_pd EINA_UNUSED)
 {
index 4a6a914..64bd863 100644 (file)
@@ -26,5 +26,6 @@ class @beta Efl.Ui.Popup_Part_Backwall extends Efl.Ui.Layout_Part implements Efl
    }
    implements {
       Efl.File.load;
+      Efl.File.unload;
    }
 }