force sending of last-used geometry when terminating a resize in wl shell send_configure

in the event that a client has not yet committed the changes from the
most recent resize event, it's legal for a client to have acked the previous
configure, ack this one, and then do nothing

this ensures that the last resize event(s) sizes are applied by the client
This commit is contained in:
Mike Blumenkrantz 2017-03-17 13:17:02 -04:00
parent 5a94a95e63
commit 7052c66e74
2 changed files with 10 additions and 0 deletions

View File

@ -68,6 +68,11 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
(shd->fullscreen == fullscreen) &&
(shd->maximized == maximized) &&
(shd->activated == activated)) return;
if (shd->edges && (shd->edges != edges))
{
if (shd->pending && (!width) && (!height))
width = shd->width, height = shd->height;
}
shd->edges = edges;
shd->width = width;
shd->height = height;

View File

@ -322,6 +322,11 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
(shd->fullscreen == fullscreen) &&
(shd->maximized == maximized) &&
(shd->activated == activated)) return;
if (shd->edges && (shd->edges != edges))
{
if (shd->pending && (!width) && (!height))
width = shd->width, height = shd->height;
}
shd->edges = edges;
shd->width = width;
shd->height = height;