From 6a80ec4704b767483866eec41f9f08432991c35a Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 17 Mar 2025 07:45:26 +0300 Subject: layout/tile: Don't take fullscreen into account in min/max size They are used strictly for non-fullscreen size computation. --- src/layout/tile.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/layout/tile.rs') diff --git a/src/layout/tile.rs b/src/layout/tile.rs index 518d08cc..891ac3f6 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -758,10 +758,13 @@ impl Tile { .request_size(self.view_size.to_i32_round(), true, animate, transaction); } - pub fn min_size(&self) -> Size { + pub fn min_size_nonfullscreen(&self) -> Size { let mut size = self.window.min_size().to_f64(); - if let Some(width) = self.effective_border_width() { + // Can't go through effective_border_width() because we might be fullscreen. + if !self.border.is_off() { + let width = self.border.width(); + size.w = f64::max(1., size.w); size.h = f64::max(1., size.h); @@ -772,10 +775,13 @@ impl Tile { size } - pub fn max_size(&self) -> Size { + pub fn max_size_nonfullscreen(&self) -> Size { let mut size = self.window.max_size().to_f64(); - if let Some(width) = self.effective_border_width() { + // Can't go through effective_border_width() because we might be fullscreen. + if !self.border.is_off() { + let width = self.border.width(); + if size.w > 0. { size.w += width * 2.; } -- cgit