aboutsummaryrefslogtreecommitdiff
path: root/src/layout/scrolling.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-03-17 07:45:26 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-03-17 22:31:19 -0700
commit6a80ec4704b767483866eec41f9f08432991c35a (patch)
tree65d6edff11a5677a721923f92e748a22519e0871 /src/layout/scrolling.rs
parente8b158641b43fa1691beb89f0224e3641b1aaad9 (diff)
downloadniri-6a80ec4704b767483866eec41f9f08432991c35a.tar.gz
niri-6a80ec4704b767483866eec41f9f08432991c35a.tar.bz2
niri-6a80ec4704b767483866eec41f9f08432991c35a.zip
layout/tile: Don't take fullscreen into account in min/max size
They are used strictly for non-fullscreen size computation.
Diffstat (limited to 'src/layout/scrolling.rs')
-rw-r--r--src/layout/scrolling.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs
index e8ee6195..1fd79256 100644
--- a/src/layout/scrolling.rs
+++ b/src/layout/scrolling.rs
@@ -4018,14 +4018,18 @@ impl<W: LayoutElement> Column<W> {
let min_size: Vec<_> = self
.tiles
.iter()
- .map(Tile::min_size)
+ .map(Tile::min_size_nonfullscreen)
.map(|mut size| {
size.w = size.w.max(1.);
size.h = size.h.max(1.);
size
})
.collect();
- let max_size: Vec<_> = self.tiles.iter().map(Tile::max_size).collect();
+ let max_size: Vec<_> = self
+ .tiles
+ .iter()
+ .map(Tile::max_size_nonfullscreen)
+ .collect();
// Compute the column width.
let min_width = min_size
@@ -4517,7 +4521,7 @@ impl<W: LayoutElement> Column<W> {
.iter()
.enumerate()
.filter(|(idx, _)| *idx != tile_idx)
- .map(|(_, tile)| f64::max(1., tile.min_size().h) + gaps)
+ .map(|(_, tile)| f64::max(1., tile.min_size_nonfullscreen().h) + gaps)
.sum::<f64>()
};
let height_left = working_size - extra_size - gaps - min_height_taken - gaps;
@@ -4947,7 +4951,7 @@ impl<W: LayoutElement> Column<W> {
let requested_size = tile.window().requested_size().unwrap();
let requested_tile_height =
tile.tile_height_for_window_height(f64::from(requested_size.h));
- let min_tile_height = f64::max(1., tile.min_size().h);
+ let min_tile_height = f64::max(1., tile.min_size_nonfullscreen().h);
if !self.is_fullscreen
&& self.scale.round() == self.scale