efl_ui_win: remove show intercept function

this should just be handled in the pre-render callback where the rest
of the calc for the window is done

also removes an unnecessary smart calc

Differential Revision: https://phab.enlightenment.org/D5960
This commit is contained in:
Mike Blumenkrantz 2018-04-17 14:52:19 -04:00
parent 34be51e105
commit fa02f16a3f
1 changed files with 12 additions and 32 deletions

View File

@ -992,11 +992,22 @@ _elm_win_pre_render(Ecore_Evas *ee)
_elm_win_throttle_ok = EINA_TRUE;
if (!sd->first_draw)
{
sd->first_draw = EINA_TRUE;
edje_object_thaw(sd->frame_obj);
evas_object_show(sd->frame_obj);
_elm_win_frame_style_update(sd, 1, 1);
_elm_win_frame_obj_update(sd);
ELM_WIN_DATA_ALIVE_CHECK(obj, sd);
if (sd->img_obj)
{
evas_object_show(sd->img_obj);
}
if (sd->pointer.obj) evas_object_show(sd->pointer.obj);
#ifdef ELEMENTARY_X
if (sd->type == ELM_WIN_TOOLTIP)
ecore_x_window_shape_input_rectangle_set(sd->x.xwin, 0, 0, 0, 0);
#endif
sd->first_draw = EINA_TRUE;
}
if (sd->deferred_resize_job)
_elm_win_resize_job(sd->obj);
@ -2877,35 +2888,6 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Win_Data *sd)
}
}
static void
_elm_win_obj_intercept_show(void *data,
Evas_Object *obj)
{
ELM_WIN_DATA_GET(data, sd);
/* FIXME: this intercept needs to be implemented in proper EO */
// this is called to make sure all smart containers have calculated their
// sizes BEFORE we show the window to make sure it initially appears at
// our desired size (ie min size is known first)
evas_smart_objects_calculate(evas_object_evas_get(obj));
if (sd->frame_obj)
{
evas_object_show(sd->frame_obj);
}
if (sd->img_obj)
{
evas_object_show(sd->img_obj);
}
if (sd->pointer.obj) evas_object_show(sd->pointer.obj);
evas_object_show(obj);
#ifdef ELEMENTARY_X
if (sd->type == ELM_WIN_TOOLTIP)
ecore_x_window_shape_input_rectangle_set(sd->x.xwin, 0, 0, 0, 0);
#endif
}
EOLIAN static void
_efl_ui_win_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Position2D pos)
{
@ -5214,8 +5196,6 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
(obj, _elm_win_obj_intercept_stack_below, obj);
evas_object_intercept_layer_set_callback_add
(obj, _elm_win_obj_intercept_layer_set, obj);
evas_object_intercept_show_callback_add
(obj, _elm_win_obj_intercept_show, obj);
}
TRAP(sd, name_class_set, name, _elm_appname);