diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index a789809537d1bf5fdc530cf293d5f8b9d542c8b2..f2482d034c1de03950aba7d62639241f806c0eae 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -3556,6 +3556,8 @@ impl Render for Workspace { ) }; + let theme = cx.theme().clone(); + let colors = theme.colors(); cx.set_rem_size(ui_font_size); self.actions(div(), cx) @@ -3568,10 +3570,10 @@ impl Render for Workspace { .gap_0() .justify_start() .items_start() - .text_color(cx.theme().colors().text) - .bg(cx.theme().colors().background) + .text_color(colors.text) + .bg(colors.background) .border() - .border_color(cx.theme().colors().border) + .border_color(colors.border) .children(self.titlebar_item.clone()) .child( div() @@ -3584,7 +3586,7 @@ impl Render for Workspace { .overflow_hidden() .border_t() .border_b() - .border_color(cx.theme().colors().border) + .border_color(colors.border) .child( canvas(cx.listener(|workspace, bounds, _| { workspace.bounds = *bounds; @@ -3623,13 +3625,17 @@ impl Render for Workspace { .flex_row() .h_full() // Left Dock - .child( - div() - .flex() - .flex_none() - .overflow_hidden() - .child(self.left_dock.clone()), - ) + .children(if self.zoomed_position == Some(DockPosition::Left) { + None + } else { + Some( + div() + .flex() + .flex_none() + .overflow_hidden() + .child(self.left_dock.clone()), + ) + }) // Panes .child( div() @@ -3657,7 +3663,26 @@ impl Render for Workspace { .child(self.right_dock.clone()), ), ) - .children(self.render_notifications(cx)), + .children(self.render_notifications(cx)) + .children(self.zoomed.as_ref().and_then(|view| { + let zoomed_view = view.upgrade()?; + let div = div() + .z_index(1) + .absolute() + .overflow_hidden() + .border_color(colors.border) + .bg(colors.background) + .child(zoomed_view) + .inset_0() + .shadow_lg(); + + Some(match self.zoomed_position { + Some(DockPosition::Left) => div.right_2().border_r(), + Some(DockPosition::Right) => div.left_2().border_l(), + Some(DockPosition::Bottom) => div.top_2().border_t(), + None => div.top_2().bottom_2().left_2().right_2().border(), + }) + })), ) .child(self.status_bar.clone()) }