diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index b103aad8a0..17961fb757 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -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);