}
EOLIAN static void
-_efl_ui_popup_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_Popup_Data *pd EINA_UNUSED, Eina_Size2D size)
+_efl_ui_popup_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_Popup_Data *pd, Eina_Size2D size)
{
efl_gfx_entity_size_set(efl_super(obj, MY_CLASS), size);
- efl_canvas_group_change(obj);
+ if (!pd->in_calc)
+ efl_canvas_group_change(obj);
}
static void
new_size.w = (min.w > size.w ? min.w : size.w);
new_size.h = (min.h > size.h ? min.h : size.h);
efl_gfx_entity_size_set(obj, new_size);
- efl_canvas_group_calculate(efl_super(obj, MY_CLASS));
}
EOLIAN static void
* The actual size calculation is done here when the object is rendered to
* avoid duplicate size calculations. */
efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
- _sizing_eval(obj);
+ if (!pd->in_calc)
+ {
+ pd->in_calc = EINA_TRUE;
+ _sizing_eval(obj);
+ pd->in_calc = EINA_FALSE;
+ }
_calc_align(obj);
Eina_Rect p_geom = efl_gfx_entity_geometry_get(pd->win_parent);
EOLIAN static void
_efl_ui_scroll_alert_popup_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Scroll_Alert_Popup_Data *pd)
{
+ EFL_UI_POPUP_DATA_GET_OR_RETURN(obj, ppd);
+ ppd->in_calc = EINA_TRUE;
/* When efl_canvas_group_change() is called, just flag is set instead of size
* calculation.
* The actual size calculation is done here when the object is rendered to
//Not to calculate size by super class
efl_canvas_group_calculate(efl_super(obj, MY_CLASS));
+ ppd->in_calc = EINA_FALSE;
}
static Eina_Bool
EOLIAN static void
_efl_ui_text_alert_popup_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Text_Alert_Popup_Data *pd)
{
+ EFL_UI_POPUP_DATA_GET_OR_RETURN(obj, ppd);
+ ppd->in_calc = EINA_TRUE;
/* When efl_canvas_group_change() is called, just flag is set instead of size
* calculation.
* The actual size calculation is done here when the object is rendered to
_sizing_eval(obj, pd);
efl_canvas_group_calculate(efl_super(obj, MY_CLASS));
+ ppd->in_calc = EINA_FALSE;
}
static Eina_Bool