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 7971df40ff87ba0ad05ec39d39dff1e96d42659e..b6d7b3e2cbf3d0a25a9513dc5884924262791fff 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()