diff --git a/crates/call/src/room.rs b/crates/call/src/room.rs index f24a8e9a9c..ce01099576 100644 --- a/crates/call/src/room.rs +++ b/crates/call/src/room.rs @@ -104,6 +104,10 @@ impl Room { self.channel_id } + pub fn is_sharing_project(&self) -> bool { + !self.shared_projects.is_empty() + } + #[cfg(any(test, feature = "test-support"))] pub fn is_connected(&self) -> bool { if let Some(live_kit) = self.live_kit.as_ref() { diff --git a/crates/collab_ui/src/collab_panel.rs b/crates/collab_ui/src/collab_panel.rs index 4a0b37b262..7a81b49868 100644 --- a/crates/collab_ui/src/collab_panel.rs +++ b/crates/collab_ui/src/collab_panel.rs @@ -3165,10 +3165,17 @@ impl CollabPanel { let window = cx.window(); let active_call = ActiveCall::global(cx); cx.spawn(|_, mut cx| async move { - if active_call.read_with(&mut cx, |active_call, _| active_call.room().is_some()) { + if active_call.read_with(&mut cx, |active_call, cx| { + if let Some(room) = active_call.room() { + let room = room.read(cx); + room.is_sharing_project() && room.remote_participants().len() > 0 + } else { + false + } + }) { let answer = window.prompt( PromptLevel::Warning, - "Do you want to leave the current call?", + "Leaving this call will unshare your current project.\nDo you want to switch channels?", &["Yes, Join Channel", "Cancel"], &mut cx, );