Preserve superseding resize configures

1fd76d4b4a74e18a1ebdd87cfaf1ce7aabb665ac
Change a tiled layout from size A to B and back to A before the client
handles B: swm could skip the final configure because A matched the
client's current state, even though B was still in flight.

Only suppress matching size requests when no resize is pending, so the
latest layout always supersedes an older configure.
Alexis Sellier committed ago 1 parent 6d7f2ee7
swm.c +3 -1
1172 1172
        wlr_xwayland_surface_configure(
1173 1173
            c->surface.xwayland, c->geom.x + c->bw, c->geom.y + c->bw, width, height
1174 1174
        );
1175 1175
        return 0;
1176 1176
    }
1177 -
    if ((int32_t)width == c->surface.xdg->toplevel->current.width &&
1177 +
    /* A matching current size does not cancel a different configure which is
1178 +
     * still in flight; schedule the requested size again in that case. */
1179 +
    if (!c->resize && (int32_t)width == c->surface.xdg->toplevel->current.width &&
1178 1180
        (int32_t)height == c->surface.xdg->toplevel->current.height)
1179 1181
        return 0;
1180 1182
    return wlr_xdg_toplevel_set_size(c->surface.xdg->toplevel, (int32_t)width, (int32_t)height);
1181 1183
}
1182 1184