aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary/efl_ui_win.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-04-17 14:52:19 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-04-25 12:06:33 -0400
commitfa02f16a3fcf24ac32ea0d1e07fbcb145b0da565 (patch)
treea85bddc0cc9dba7bb5fbb3de221c4af3051bd5c1 /src/lib/elementary/efl_ui_win.c
parentelm_win: freeze frame object edje until first pre-render (diff)
downloadefl-fa02f16a3fcf24ac32ea0d1e07fbcb145b0da565.tar.gz
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
Diffstat (limited to 'src/lib/elementary/efl_ui_win.c')
-rw-r--r--src/lib/elementary/efl_ui_win.c44
1 files changed, 12 insertions, 32 deletions
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);