aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kirill Primak <vyivel@eclair.cafe>2023-10-29 18:59:25 +0300
committerLibravatar Simon Ser <contact@emersion.fr>2023-10-29 17:21:18 +0100
commitf2425b4fd64314394aa962cee12b617fb7e5b10f (patch)
tree3c7196749c4baf874bdd5aacac548adfa84f64ae
parentxdg_shell: don't update wlr_toplevel if the container has no size yet (diff)
downloadsway-f2425b4fd64314394aa962cee12b617fb7e5b10f.tar.gz
sway-f2425b4fd64314394aa962cee12b617fb7e5b10f.tar.zst
sway-f2425b4fd64314394aa962cee12b617fb7e5b10f.zip
xdg-shell: send maximized if tiled isn't supported
wlroots doesn't do it automatically anymore.
-rw-r--r--sway/desktop/xdg_shell.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c
index 7c01bf16..4c59b42a 100644
--- a/sway/desktop/xdg_shell.c
+++ b/sway/desktop/xdg_shell.c
@@ -169,12 +169,19 @@ static void set_tiled(struct sway_view *view, bool tiled) {
169 if (xdg_shell_view_from_view(view) == NULL) { 169 if (xdg_shell_view_from_view(view) == NULL) {
170 return; 170 return;
171 } 171 }
172 enum wlr_edges edges = WLR_EDGE_NONE; 172 if (wl_resource_get_version(view->wlr_xdg_toplevel->resource) >=
173 if (tiled) { 173 XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
174 edges = WLR_EDGE_LEFT | WLR_EDGE_RIGHT | WLR_EDGE_TOP | 174 enum wlr_edges edges = WLR_EDGE_NONE;
175 WLR_EDGE_BOTTOM; 175 if (tiled) {
176 edges = WLR_EDGE_LEFT | WLR_EDGE_RIGHT | WLR_EDGE_TOP |
177 WLR_EDGE_BOTTOM;
178 }
179 wlr_xdg_toplevel_set_tiled(view->wlr_xdg_toplevel, edges);
180 } else {
181 // The version is too low for the tiled state; configure as maximized instead
182 // to stop the client from drawing decorations outside of the toplevel geometry.
183 wlr_xdg_toplevel_set_maximized(view->wlr_xdg_toplevel, tiled);
176 } 184 }
177 wlr_xdg_toplevel_set_tiled(view->wlr_xdg_toplevel, edges);
178} 185}
179 186
180static void set_fullscreen(struct sway_view *view, bool fullscreen) { 187static void set_fullscreen(struct sway_view *view, bool fullscreen) {