mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-27 16:57:08 +00:00
Fix collab panel regressions (#2915)
Release Notes: - Fixed a bug where collaborators' cursors were rendered with the wrong color when not following them (preview only). - Fixed an issue where icons were inconsistent sizes in the collaboration panel (preview only).
This commit is contained in:
commit
6d60960fd2
2 changed files with 20 additions and 66 deletions
|
@ -1106,23 +1106,17 @@ impl CollabPanel {
|
||||||
) -> AnyElement<Self> {
|
) -> AnyElement<Self> {
|
||||||
enum OpenSharedScreen {}
|
enum OpenSharedScreen {}
|
||||||
|
|
||||||
let font_cache = cx.font_cache();
|
let host_avatar_width = theme
|
||||||
let host_avatar_height = theme
|
|
||||||
.contact_avatar
|
.contact_avatar
|
||||||
.width
|
.width
|
||||||
.or(theme.contact_avatar.height)
|
.or(theme.contact_avatar.height)
|
||||||
.unwrap_or(0.);
|
.unwrap_or(0.);
|
||||||
let row = &theme.project_row.inactive_state().default;
|
|
||||||
let tree_branch = theme.tree_branch;
|
let tree_branch = theme.tree_branch;
|
||||||
let line_height = row.name.text.line_height(font_cache);
|
|
||||||
let cap_height = row.name.text.cap_height(font_cache);
|
|
||||||
let baseline_offset =
|
|
||||||
row.name.text.baseline_offset(font_cache) + (theme.row_height - line_height) / 2.;
|
|
||||||
|
|
||||||
MouseEventHandler::new::<OpenSharedScreen, _>(
|
MouseEventHandler::new::<OpenSharedScreen, _>(
|
||||||
peer_id.as_u64() as usize,
|
peer_id.as_u64() as usize,
|
||||||
cx,
|
cx,
|
||||||
|mouse_state, _| {
|
|mouse_state, cx| {
|
||||||
let tree_branch = *tree_branch.in_state(is_selected).style_for(mouse_state);
|
let tree_branch = *tree_branch.in_state(is_selected).style_for(mouse_state);
|
||||||
let row = theme
|
let row = theme
|
||||||
.project_row
|
.project_row
|
||||||
|
@ -1130,49 +1124,20 @@ impl CollabPanel {
|
||||||
.style_for(mouse_state);
|
.style_for(mouse_state);
|
||||||
|
|
||||||
Flex::row()
|
Flex::row()
|
||||||
.with_child(
|
.with_child(render_tree_branch(
|
||||||
Stack::new()
|
tree_branch,
|
||||||
.with_child(Canvas::new(move |scene, bounds, _, _, _| {
|
&row.name.text,
|
||||||
let start_x = bounds.min_x() + (bounds.width() / 2.)
|
is_last,
|
||||||
- (tree_branch.width / 2.);
|
vec2f(host_avatar_width, theme.row_height),
|
||||||
let end_x = bounds.max_x();
|
cx.font_cache(),
|
||||||
let start_y = bounds.min_y();
|
))
|
||||||
let end_y = bounds.min_y() + baseline_offset - (cap_height / 2.);
|
|
||||||
|
|
||||||
scene.push_quad(gpui::Quad {
|
|
||||||
bounds: RectF::from_points(
|
|
||||||
vec2f(start_x, start_y),
|
|
||||||
vec2f(
|
|
||||||
start_x + tree_branch.width,
|
|
||||||
if is_last { end_y } else { bounds.max_y() },
|
|
||||||
),
|
|
||||||
),
|
|
||||||
background: Some(tree_branch.color),
|
|
||||||
border: gpui::Border::default(),
|
|
||||||
corner_radii: (0.).into(),
|
|
||||||
});
|
|
||||||
scene.push_quad(gpui::Quad {
|
|
||||||
bounds: RectF::from_points(
|
|
||||||
vec2f(start_x, end_y),
|
|
||||||
vec2f(end_x, end_y + tree_branch.width),
|
|
||||||
),
|
|
||||||
background: Some(tree_branch.color),
|
|
||||||
border: gpui::Border::default(),
|
|
||||||
corner_radii: (0.).into(),
|
|
||||||
});
|
|
||||||
}))
|
|
||||||
.constrained()
|
|
||||||
.with_width(host_avatar_height),
|
|
||||||
)
|
|
||||||
.with_child(
|
.with_child(
|
||||||
Svg::new("icons/disable_screen_sharing_12.svg")
|
Svg::new("icons/disable_screen_sharing_12.svg")
|
||||||
.with_color(row.icon.color)
|
.with_color(theme.channel_hash.color)
|
||||||
.constrained()
|
.constrained()
|
||||||
.with_width(row.icon.width)
|
.with_width(theme.channel_hash.width)
|
||||||
.aligned()
|
.aligned()
|
||||||
.left()
|
.left(),
|
||||||
.contained()
|
|
||||||
.with_style(row.icon.container),
|
|
||||||
)
|
)
|
||||||
.with_child(
|
.with_child(
|
||||||
Label::new("Screen", row.name.text.clone())
|
Label::new("Screen", row.name.text.clone())
|
||||||
|
@ -2553,27 +2518,16 @@ impl View for CollabPanel {
|
||||||
.with_child(
|
.with_child(
|
||||||
Flex::column()
|
Flex::column()
|
||||||
.with_child(
|
.with_child(
|
||||||
Flex::row()
|
Flex::row().with_child(
|
||||||
.with_child(
|
ChildView::new(&self.filter_editor, cx)
|
||||||
ChildView::new(&self.filter_editor, cx)
|
.contained()
|
||||||
.contained()
|
.with_style(theme.user_query_editor.container)
|
||||||
.with_style(theme.user_query_editor.container)
|
.flex(1.0, true),
|
||||||
.flex(1.0, true),
|
),
|
||||||
)
|
|
||||||
.constrained()
|
|
||||||
.with_width(self.size(cx)),
|
|
||||||
)
|
|
||||||
.with_child(
|
|
||||||
List::new(self.list_state.clone())
|
|
||||||
.constrained()
|
|
||||||
.with_width(self.size(cx))
|
|
||||||
.flex(1., true)
|
|
||||||
.into_any(),
|
|
||||||
)
|
)
|
||||||
|
.with_child(List::new(self.list_state.clone()).flex(1., true).into_any())
|
||||||
.contained()
|
.contained()
|
||||||
.with_style(theme.container)
|
.with_style(theme.container)
|
||||||
.constrained()
|
|
||||||
.with_width(self.size(cx))
|
|
||||||
.into_any(),
|
.into_any(),
|
||||||
)
|
)
|
||||||
.with_children(
|
.with_children(
|
||||||
|
|
|
@ -2251,7 +2251,7 @@ impl Element<Editor> for EditorElement {
|
||||||
let replica_id = if let Some(mapping) = &editor.replica_id_mapping {
|
let replica_id = if let Some(mapping) = &editor.replica_id_mapping {
|
||||||
mapping.get(&replica_id).copied()
|
mapping.get(&replica_id).copied()
|
||||||
} else {
|
} else {
|
||||||
None
|
Some(replica_id)
|
||||||
};
|
};
|
||||||
|
|
||||||
// The local selections match the leader's selections.
|
// The local selections match the leader's selections.
|
||||||
|
|
Loading…
Reference in a new issue