diff options
Diffstat (limited to 'src/lib/elementary/efl_ui_popup.c')
-rw-r--r-- | src/lib/elementary/efl_ui_popup.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index 0302e62da6..9972ce03bb 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -239,8 +239,8 @@ _efl_ui_popup_efl_object_destructor(Eo *obj, Efl_Ui_Popup_Data *pd) efl_destructor(efl_super(obj, MY_CLASS)); } -EOLIAN static void -_efl_ui_popup_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Data *pd EINA_UNUSED) +static void +_sizing_eval(Eo *obj, Efl_Ui_Popup_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Coord minw = -1, minh = -1; @@ -260,6 +260,25 @@ _efl_ui_popup_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Data *pd EINA_UNUSED) _calc_align(obj); } +EOLIAN static void +_efl_ui_popup_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Data *pd) +{ + if (pd->needs_size_calc) return; + pd->needs_size_calc = EINA_TRUE; + + evas_object_smart_changed(obj); +} + +EOLIAN static void +_efl_ui_popup_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Popup_Data *pd) +{ + if (pd->needs_size_calc) + { + _sizing_eval(obj, pd); + pd->needs_size_calc = EINA_FALSE; + } +} + /* Standard widget overrides */ ELM_PART_CONTENT_DEFAULT_SET(efl_ui_popup, "elm.swallow.content") |