xdg-toplevel: don't send maximized if tiled is requested but not supported

This is a bit too magical and may break compositors which try not to
send duplicate configure events.
This commit is contained in:
Kirill Primak 2023-10-25 21:30:38 +03:00
parent af165acb42
commit 5fac9b1beb
1 changed files with 15 additions and 21 deletions

View File

@ -78,8 +78,7 @@ struct wlr_xdg_toplevel_configure *send_xdg_toplevel_configure(
if (configure->activated) {
states[nstates++] = XDG_TOPLEVEL_STATE_ACTIVATED;
}
if (configure->tiled) {
if (version >= XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
if (configure->tiled && version >= XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
const struct {
enum wlr_edges edge;
enum xdg_toplevel_state state;
@ -96,13 +95,8 @@ struct wlr_xdg_toplevel_configure *send_xdg_toplevel_configure(
}
states[nstates++] = tiled[i].state;
}
} else if (!configure->maximized) {
states[nstates++] = XDG_TOPLEVEL_STATE_MAXIMIZED;
}
}
if (configure->suspended &&
version >= XDG_TOPLEVEL_STATE_SUSPENDED_SINCE_VERSION) {
if (configure->suspended && version >= XDG_TOPLEVEL_STATE_SUSPENDED_SINCE_VERSION) {
states[nstates++] = XDG_TOPLEVEL_STATE_SUSPENDED;
}
assert(nstates <= sizeof(states) / sizeof(states[0]));