From 10460191b93194ed4d9dc16e1fd7a2eb6f297ae3 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 11 Dec 2024 09:27:38 +0300 Subject: Honor min/max size in more places like initial configure --- src/layout/mod.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/layout/mod.rs') diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 48a7954a..916b6b41 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -3219,9 +3219,21 @@ impl Layout { // prefer-no-csd, and occasionally that last size can become the full-width size // rather than a smaller size, which is annoying. Need to see if niri can use some // heuristics to make this case behave better. - if tile.window().is_pending_fullscreen() { - tile.window_mut() - .request_size(Size::from((0, 0)), true, None); + let win = tile.window_mut(); + if win.is_pending_fullscreen() { + let mut size = Size::from((0, 0)); + + // Make sure fixed-size through window rules keeps working. + let min_size = win.min_size(); + let max_size = win.max_size(); + if min_size.w == max_size.w { + size.w = min_size.w; + } + if min_size.h == max_size.h { + size.h = min_size.h; + } + + win.request_size(size, true, None); } let mut data = InteractiveMoveData { -- cgit