From e1fad994da9565b43c7fb139cb2fb7bf404cc320 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 2 Sep 2025 08:07:22 +0300 Subject: Implement maximize-to-edges (true Wayland maximize) --- src/layout/floating.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/layout/floating.rs') diff --git a/src/layout/floating.rs b/src/layout/floating.rs index 260775d3..5ef0a265 100644 --- a/src/layout/floating.rs +++ b/src/layout/floating.rs @@ -413,8 +413,8 @@ impl FloatingSpace { // unfullscreen it. let floating_size = tile.floating_window_size; let win = tile.window_mut(); - let mut size = if win.is_pending_fullscreen() { - // If the window was fullscreen without a floating size, ask for (0, 0). + let mut size = if !win.pending_sizing_mode().is_normal() { + // If the window was fullscreen or maximized without a floating size, ask for (0, 0). floating_size.unwrap_or_default() } else { // If the window wasn't fullscreen without a floating size (e.g. it was tiled before), @@ -1312,6 +1312,8 @@ impl FloatingSpace { assert_eq!(self.tiles.len(), self.data.len()); for (i, (tile, data)) in zip(&self.tiles, &self.data).enumerate() { + use crate::layout::SizingMode; + assert!(Rc::ptr_eq(&self.options, &tile.options)); assert_eq!(self.view_size, tile.view_size()); assert_eq!(self.clock, tile.clock); @@ -1325,9 +1327,10 @@ impl FloatingSpace { assert!(idx < self.options.layout.preset_window_heights.len()); } - assert!( - !tile.window().is_pending_fullscreen(), - "floating windows cannot be fullscreen" + assert_eq!( + tile.window().pending_sizing_mode(), + SizingMode::Normal, + "floating windows cannot be maximized or fullscreen" ); data.verify_invariants(); -- cgit