diff --git a/crates/workspace2/src/pane_group.rs b/crates/workspace2/src/pane_group.rs index d35c138d5c..b52cec2b18 100644 --- a/crates/workspace2/src/pane_group.rs +++ b/crates/workspace2/src/pane_group.rs @@ -172,6 +172,10 @@ impl Member { ) -> impl IntoElement { match self { Member::Pane(pane) => { + if zoomed == Some(&pane.downgrade().into()) { + return div().into_any(); + } + let leader = follower_states.get(pane).and_then(|state| { let room = active_call?.read(cx).room()?.read(cx); room.remote_participant_for_peer_id(state.leader_id) @@ -270,6 +274,7 @@ impl Member { project, basis + 1, follower_states, + active_call, active_pane, zoomed, app_state, @@ -277,133 +282,6 @@ impl Member { ) .into_any(), } - - // enum FollowIntoExternalProject {} - - // match self { - // Member::Pane(pane) => { - // let pane_element = if Some(&**pane) == zoomed { - // Empty::new().into_any() - // } else { - // ChildView::new(pane, cx).into_any() - // }; - - // let leader = follower_states.get(pane).and_then(|state| { - // let room = active_call?.read(cx).room()?.read(cx); - // room.remote_participant_for_peer_id(state.leader_id) - // }); - - // let mut leader_border = Border::default(); - // let mut leader_status_box = None; - // if let Some(leader) = &leader { - // let leader_color = theme - // .editor - // .selection_style_for_room_participant(leader.participant_index.0) - // .cursor; - // leader_border = Border::all(theme.workspace.leader_border_width, leader_color); - // leader_border - // .color - // .fade_out(1. - theme.workspace.leader_border_opacity); - // leader_border.overlay = true; - - // leader_status_box = match leader.location { - // ParticipantLocation::SharedProject { - // project_id: leader_project_id, - // } => { - // if Some(leader_project_id) == project.read(cx).remote_id() { - // None - // } else { - // let leader_user = leader.user.clone(); - // let leader_user_id = leader.user.id; - // Some( - // MouseEventHandler::new::( - // pane.id(), - // cx, - // |_, _| { - // Label::new( - // format!( - // "Follow {} to their active project", - // leader_user.github_login, - // ), - // theme - // .workspace - // .external_location_message - // .text - // .clone(), - // ) - // .contained() - // .with_style( - // theme.workspace.external_location_message.container, - // ) - // }, - // ) - // .with_cursor_style(CursorStyle::PointingHand) - // .on_click(MouseButton::Left, move |_, this, cx| { - // crate::join_remote_project( - // leader_project_id, - // leader_user_id, - // this.app_state().clone(), - // cx, - // ) - // .detach_and_log_err(cx); - // }) - // .aligned() - // .bottom() - // .right() - // .into_any(), - // ) - // } - // } - // ParticipantLocation::UnsharedProject => Some( - // Label::new( - // format!( - // "{} is viewing an unshared Zed project", - // leader.user.github_login - // ), - // theme.workspace.external_location_message.text.clone(), - // ) - // .contained() - // .with_style(theme.workspace.external_location_message.container) - // .aligned() - // .bottom() - // .right() - // .into_any(), - // ), - // ParticipantLocation::External => Some( - // Label::new( - // format!( - // "{} is viewing a window outside of Zed", - // leader.user.github_login - // ), - // theme.workspace.external_location_message.text.clone(), - // ) - // .contained() - // .with_style(theme.workspace.external_location_message.container) - // .aligned() - // .bottom() - // .right() - // .into_any(), - // ), - // }; - // } - - // Stack::new() - // .with_child(pane_element.contained().with_border(leader_border)) - // .with_children(leader_status_box) - // .into_any() - // } - // Member::Axis(axis) => axis.render( - // project, - // basis + 1, - // theme, - // follower_states, - // active_call, - // active_pane, - // zoomed, - // app_state, - // cx, - // ), - // } } fn collect_panes<'a>(&'a self, panes: &mut Vec<&'a View>) { @@ -586,6 +464,7 @@ impl PaneAxis { project: &Model, basis: usize, follower_states: &HashMap, FollowerState>, + active_call: Option<&Model>, active_pane: &View, zoomed: Option<&AnyWeakView>, app_state: &Arc, @@ -604,25 +483,18 @@ impl PaneAxis { if member.contains(active_pane) { active_pane_ix = Some(ix); } - - match member { - Member::Axis(axis) => axis - .render( - project, - (basis + ix) * 10, - follower_states, - active_pane, - zoomed, - app_state, - cx, - ) - .into_any_element(), - Member::Pane(pane) => div() - .size_full() - .border() - .child(pane.clone()) - .into_any_element(), - } + member + .render( + project, + (basis + ix) * 10, + follower_states, + active_call, + active_pane, + zoomed, + app_state, + cx, + ) + .into_any_element() })) .with_active_pane(active_pane_ix) .into_any_element()