From 7d7274b8010da57c7e2d81e90614e8df473ff19e Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Tue, 17 Jun 2025 23:52:28 -0400 Subject: [PATCH] fix(header-bar): allocate space that accounts for window controls --- src/widget/header_bar.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/widget/header_bar.rs b/src/widget/header_bar.rs index fdc9d962..6f7c35fd 100644 --- a/src/widget/header_bar.rs +++ b/src/widget/header_bar.rs @@ -307,6 +307,9 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> { let center = std::mem::take(&mut self.center); let mut end = std::mem::take(&mut self.end); + let window_control_cnt = self.on_close.is_some() as usize + + self.on_maximize.is_some() as usize + + self.on_minimize.is_some() as usize; // Also packs the window controls at the very end. end.push(self.window_controls()); @@ -327,8 +330,9 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> { } } }; - let portion = ((start.len().max(end.len()) as f32 / center.len().max(1) as f32).round() - as u16) + let portion = ((start.len().max(end.len() + window_control_cnt) as f32 + / center.len().max(1) as f32) + .round() as u16) .max(1); // Creates the headerbar widget. let mut widget = widget::row::with_capacity(3)