From 74b7e24cb81eb12fb79a46861a6ff1570a57406b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 26 Jul 2019 12:54:41 -0400 Subject: [PATCH] efl_ui/popup: implement efl.file.unload for popup backwall part this fixes unsetting images for popup backwall @fix Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9415 --- src/lib/elementary/efl_ui_popup.c | 16 ++++++++++++++++ src/lib/elementary/efl_ui_popup_part_backwall.eo | 1 + 2 files changed, 17 insertions(+) diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index c60f137..8d7271e 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -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) { diff --git a/src/lib/elementary/efl_ui_popup_part_backwall.eo b/src/lib/elementary/efl_ui_popup_part_backwall.eo index 4a6a914..64bd863 100644 --- a/src/lib/elementary/efl_ui_popup_part_backwall.eo +++ b/src/lib/elementary/efl_ui_popup_part_backwall.eo @@ -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; } } -- 2.7.4