From 01156d3469e13bc74901065a3a2edcdffb2eccf5 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 Apr 2016 15:10:57 -0400 Subject: [PATCH] elm_win: update wayland opaque region during pre-flush...always @fix --- src/lib/elementary/elm_win.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/elementary/elm_win.c b/src/lib/elementary/elm_win.c index 652690932d..989040172f 100644 --- a/src/lib/elementary/elm_win.c +++ b/src/lib/elementary/elm_win.c @@ -1266,7 +1266,7 @@ _elm_win_opaque_update(Elm_Win_Data *sd) alpha = ecore_evas_alpha_get(sd->ee); if (alpha) ecore_wl2_window_opaque_region_set(sd->wl.win, 0, 0, 0, 0); - if (sd->fullscreen) + if (sd->fullscreen || (!sd->frame_obj)) { ecore_evas_geometry_get(sd->ee, NULL, NULL, &ow, &oh); if (!alpha) @@ -3101,9 +3101,6 @@ _elm_win_frame_add(Elm_Win_Data *sd, (sd->frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd); evas_object_event_callback_add (sd->frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd); -#ifdef HAVE_ELEMENTARY_WL2 - evas_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, _elm_win_frame_pre_render, sd); -#endif /* NB: Do NOT remove these calls !! Needed to calculate proper * framespace on initial show of the window */ @@ -3163,9 +3160,6 @@ _elm_win_frame_del(Elm_Win_Data *sd) (sd->frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd); evas_object_event_callback_del_full (sd->frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd); -#ifdef HAVE_ELEMENTARY_WL2 - evas_event_callback_del_full(sd->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, _elm_win_frame_pre_render, sd); -#endif edje_object_signal_callback_del (sd->frame_obj, "elm,action,move,start", "elm", @@ -3889,6 +3883,10 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ #ifdef HAVE_ELEMENTARY_X _elm_win_xwin_update(sd); #endif +#ifdef HAVE_ELEMENTARY_WL2 + if (eina_streq(engine, ELM_WAYLAND_SHM) || eina_streq(engine, ELM_WAYLAND_EGL)) + evas_event_callback_add(sd->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, _elm_win_frame_pre_render, sd); +#endif /* do not append to list; all windows render as black rects */ if (type != ELM_WIN_FAKE)