From c13ae0a63099de1781e3bb29e314a1da4a4acc92 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 17 Jan 2018 17:33:57 -0500 Subject: [PATCH] efl-wl: enforce xdg-shell spec requiring a commit to an unmapped surface a separate commit is required for a newly-unmapped surface in order for the surface to be able to attach a buffer and be mapped --- src/lib/efl_wl/efl_wl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index da935c3512..050ee897ec 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -1393,6 +1393,7 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state) Eina_List *l; Evas_Object *o; Comp_Buffer *buffer = NULL; + Eina_Bool newly_new = EINA_FALSE; if (state->attach) { @@ -1416,6 +1417,7 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state) if (cs->shell.surface) { cs->shell.new = 1; + newly_new = EINA_TRUE; shell_surface_reset(cs); } } @@ -1440,7 +1442,7 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state) evas_object_move(cs->img, x + buffer->x, y + buffer->y); evas_object_resize(cs->obj, buffer->w, buffer->h); } - else if (cs->shell.new) + else if (cs->shell.new && (!newly_new)) shell_surface_init(cs); state->attach = 0;