From a53be7b4bee018960d219a72cf7a28bdd4a90f3f Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Jan 2025 17:53:34 -0500 Subject: [PATCH] collab_ui: Show the chat panel icon when the chat panel is active (#22593) This PR is a follow-up to #22200 that makes it so the chat panel icon is visible when the chat panel is active, even if not in a call (when using the `when_in_call` setting). Release Notes: - N/A --- crates/collab_ui/src/chat_panel.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/crates/collab_ui/src/chat_panel.rs b/crates/collab_ui/src/chat_panel.rs index 6ac6f007ed4b8c4f4210f6131da39622056c542a..f8cae3b1cd646bc106b30a83e6ec9b0f090ec967 100644 --- a/crates/collab_ui/src/chat_panel.rs +++ b/crates/collab_ui/src/chat_panel.rs @@ -1135,15 +1135,20 @@ impl Panel for ChatPanel { } fn icon(&self, cx: &WindowContext) -> Option { - match ChatPanelSettings::get_global(cx).button { - ChatPanelButton::Never => None, - ChatPanelButton::Always => Some(ui::IconName::MessageBubbles), - ChatPanelButton::WhenInCall => ActiveCall::global(cx) - .read(cx) - .room() - .filter(|room| room.read(cx).contains_guests()) - .map(|_| ui::IconName::MessageBubbles), - } + let show_icon = match ChatPanelSettings::get_global(cx).button { + ChatPanelButton::Never => false, + ChatPanelButton::Always => true, + ChatPanelButton::WhenInCall => { + let is_in_call = ActiveCall::global(cx) + .read(cx) + .room() + .map_or(false, |room| room.read(cx).contains_guests()); + + self.active || is_in_call + } + }; + + show_icon.then(|| ui::IconName::MessageBubbles) } fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {