From c6e44683e652decbe2de1196d583846e5e22d7a0 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 14 Dec 2023 13:02:27 -0500 Subject: [PATCH] Hide the toolbar if it has no visible items (#3654) This PR makes the toolbar hide itself if it has no visible items. This removes the double border beneath the tab bar when there are no visible tools in the toolbar. Release Notes: - N/A --- crates/workspace2/src/toolbar.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/workspace2/src/toolbar.rs b/crates/workspace2/src/toolbar.rs index 7971df40ff..b6d7b3e2cb 100644 --- a/crates/workspace2/src/toolbar.rs +++ b/crates/workspace2/src/toolbar.rs @@ -55,6 +55,12 @@ pub struct Toolbar { } impl Toolbar { + fn has_any_visible_items(&self) -> bool { + self.items + .iter() + .any(|(_item, location)| *location != ToolbarItemLocation::Hidden) + } + fn left_items(&self) -> impl Iterator { self.items.iter().filter_map(|(item, location)| { if *location == ToolbarItemLocation::PrimaryLeft { @@ -90,6 +96,10 @@ impl Render for Toolbar { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + if !self.has_any_visible_items() { + return div(); + } + let secondary_item = self.secondary_items().next().map(|item| item.to_any()); v_stack()