diff --git a/crates/collab_ui/src/collab_titlebar_item.rs b/crates/collab_ui/src/collab_titlebar_item.rs index b8f319970d..07aeb74547 100644 --- a/crates/collab_ui/src/collab_titlebar_item.rs +++ b/crates/collab_ui/src/collab_titlebar_item.rs @@ -103,7 +103,7 @@ impl View for CollabTitlebarItem { if ActiveCall::global(cx).read(cx).room().is_some() { right_container - .add_child(self.render_in_call_share_unshare_button(&workspace, &theme, cx)); + .add_children(self.render_in_call_share_unshare_button(&workspace, &theme, cx)); } else { right_container.add_child(self.render_outside_call_share_button(&theme, cx)); } @@ -396,8 +396,13 @@ impl CollabTitlebarItem { workspace: &ViewHandle, theme: &Theme, cx: &mut RenderContext, - ) -> ElementBox { - let is_shared = workspace.read(cx).project().read(cx).is_shared(); + ) -> Option { + let project = workspace.read(cx).project(); + if project.read(cx).is_remote() { + return None; + } + + let is_shared = project.read(cx).is_shared(); let label = if is_shared { "Unshare" } else { "Share" }; let tooltip = if is_shared { "Unshare project from call participants" @@ -408,47 +413,49 @@ impl CollabTitlebarItem { let titlebar = &theme.workspace.titlebar; enum ShareUnshare {} - Stack::new() - .with_child( - MouseEventHandler::::new(0, cx, |state, _| { - //TODO: Ensure this button has consistant width for both text variations - let style = titlebar.share_button.style_for( - state, - self.contacts_popover.is_some() - && self.contacts_popover_side == ContactsPopoverSide::Right, - ); - Label::new(label, style.text.clone()) - .contained() - .with_style(style.container) - .boxed() - }) - .with_cursor_style(CursorStyle::PointingHand) - .on_click(MouseButton::Left, move |_, cx| { - if is_shared { - cx.dispatch_action(UnshareProject); - } else { - cx.dispatch_action(ShareProject); - } - }) - .with_tooltip::( - 0, - tooltip.to_owned(), - None, - theme.tooltip.clone(), - cx, + Some( + Stack::new() + .with_child( + MouseEventHandler::::new(0, cx, |state, _| { + //TODO: Ensure this button has consistant width for both text variations + let style = titlebar.share_button.style_for( + state, + self.contacts_popover.is_some() + && self.contacts_popover_side == ContactsPopoverSide::Right, + ); + Label::new(label, style.text.clone()) + .contained() + .with_style(style.container) + .boxed() + }) + .with_cursor_style(CursorStyle::PointingHand) + .on_click(MouseButton::Left, move |_, cx| { + if is_shared { + cx.dispatch_action(UnshareProject); + } else { + cx.dispatch_action(ShareProject); + } + }) + .with_tooltip::( + 0, + tooltip.to_owned(), + None, + theme.tooltip.clone(), + cx, + ) + .boxed(), ) + .with_children(self.render_contacts_popover_host( + ContactsPopoverSide::Right, + titlebar, + cx, + )) + .aligned() + .contained() + .with_margin_left(theme.workspace.titlebar.avatar_margin) + .with_margin_right(theme.workspace.titlebar.avatar_margin) .boxed(), - ) - .with_children(self.render_contacts_popover_host( - ContactsPopoverSide::Right, - titlebar, - cx, - )) - .aligned() - .contained() - .with_margin_left(theme.workspace.titlebar.avatar_margin) - .with_margin_right(theme.workspace.titlebar.avatar_margin) - .boxed() + ) } fn render_outside_call_share_button(