From 4a29e2d23cc67027cb18d028eb34a31f3681484f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Sat, 9 May 2026 21:53:46 -0400 Subject: [PATCH] Suppress workspace popover when sidebar isn't expanded The disclosure anchors to fixed window coords sized for the picker pill in the expanded sidebar. If the sidebar is collapsed or hidden when `workspace_picker_open` is true, the popover would float disconnected from any visible trigger. Gate the render on `!sidebar_collapsed && !sidebar_hidden` so the popover only shows when the pill is actually painted. --- crates/ely_app/src/shell/render.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/ely_app/src/shell/render.rs b/crates/ely_app/src/shell/render.rs index 77d41ae..1753f1c 100644 --- a/crates/ely_app/src/shell/render.rs +++ b/crates/ely_app/src/shell/render.rs @@ -93,10 +93,17 @@ impl ElyShell { .when(hover_expanded, |el| { el.child(self.render_hidden_sidebar_overlay(&snapshot, cx)) }) - .when(self.workspace_picker_open, |el| { - el.child(render_workspace_disclosure_backdrop(cx)) - .child(render_workspace_disclosure(&snapshot, cx)) - }) + // Workspace popover only makes sense when the picker pill is + // visible — i.e. the sidebar is expanded. Compact/hidden + // modes don't render the trigger, so showing the disclosure + // would float a stranded card with no anchor. + .when( + self.workspace_picker_open && !sidebar_collapsed && !sidebar_hidden, + |el| { + el.child(render_workspace_disclosure_backdrop(cx)) + .child(render_workspace_disclosure(&snapshot, cx)) + }, + ) .children(render_command_overlay(self, &snapshot, cx)) .into_any_element() }