diff --git a/crates/workspace/src/pane_group.rs b/crates/workspace/src/pane_group.rs index dcd0b091a3f..3b0d07dcf25 100644 --- a/crates/workspace/src/pane_group.rs +++ b/crates/workspace/src/pane_group.rs @@ -545,39 +545,55 @@ impl Member { }; } - if let Some(maximized) = maximized { + let is_maximized = if let Some(maximized) = maximized { if maximized.upgrade().as_ref() != Some(pane) { return PaneRenderResult { element: div().into_any(), contains_active_pane: false, }; } - } + true + } else { + false + }; let decoration = render_cx.decorate(pane, cx); let is_active = pane == render_cx.active_pane(); + let pane = div() + .relative() + .size_full() + .when(is_maximized, |this| { + this.bg(cx.theme().colors().background) + .border_1() + .border_color(cx.theme().colors().border) + .shadow_lg() + .overflow_hidden() + }) + .child( + AnyView::from(pane.clone()) + .cached(StyleRefinement::default().v_flex().size_full()), + ) + .when_some(decoration.border, |this, color| { + this.child( + div() + .absolute() + .size_full() + .left_0() + .top_0() + .border_2() + .border_color(color), + ) + }) + .children(decoration.status_box); + PaneRenderResult { element: div() .relative() .flex_1() .size_full() - .child( - AnyView::from(pane.clone()) - .cached(StyleRefinement::default().v_flex().size_full()), - ) - .when_some(decoration.border, |this, color| { - this.child( - div() - .absolute() - .size_full() - .left_0() - .top_0() - .border_2() - .border_color(color), - ) - }) - .children(decoration.status_box) + .when(is_maximized, |this| this.p_2()) + .child(pane) .into_any(), contains_active_pane: is_active, }