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
This commit is contained in:
Mike Blumenkrantz 2018-01-17 17:33:57 -05:00
parent 02af7e8210
commit c13ae0a630
1 changed files with 3 additions and 1 deletions

View File

@ -1393,6 +1393,7 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state)
Eina_List *l; Eina_List *l;
Evas_Object *o; Evas_Object *o;
Comp_Buffer *buffer = NULL; Comp_Buffer *buffer = NULL;
Eina_Bool newly_new = EINA_FALSE;
if (state->attach) if (state->attach)
{ {
@ -1416,6 +1417,7 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state)
if (cs->shell.surface) if (cs->shell.surface)
{ {
cs->shell.new = 1; cs->shell.new = 1;
newly_new = EINA_TRUE;
shell_surface_reset(cs); 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_move(cs->img, x + buffer->x, y + buffer->y);
evas_object_resize(cs->obj, buffer->w, buffer->h); 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); shell_surface_init(cs);
state->attach = 0; state->attach = 0;