diff --git a/packages/app/e2e/browser/direct-terminal-shortcut-pane-placement.spec.ts b/packages/app/e2e/browser/direct-terminal-shortcut-pane-placement.spec.ts index fdcacbde2a..373459ef4c 100644 --- a/packages/app/e2e/browser/direct-terminal-shortcut-pane-placement.spec.ts +++ b/packages/app/e2e/browser/direct-terminal-shortcut-pane-placement.spec.ts @@ -1,3 +1,4 @@ +import { installLocalDesktopHost } from "../support/helpers/local-desktop-host"; import type { Locator, Page } from "@playwright/test"; import { expect, test } from "../support/fixtures"; import { runWorkspaceActionFromCommandCenter } from "../support/helpers/command-center-workspace-actions"; @@ -104,3 +105,33 @@ test("compact pane launch stays in its owning pane and pane controls remain reac await workspace.cleanup(); } }); + +async function expectPaneHasWindowDragSurface(pane: Locator) { + await expect + .poll(() => + pane.evaluate((element) => + Array.from(element.querySelectorAll("div")).some( + (node) => node.style.getPropertyValue("-webkit-app-region") === "drag", + ), + ), + ) + .toBe(true); +} + +test("compact desktop panes retain window dragging with both sidebars closed", async ({ page }) => { + const workspace = await seedWorkspace({ repoPrefix: "compact-pane-window-drag-" }); + try { + await installLocalDesktopHost(page, workspace.repoPath); + const { originalPane, otherPane } = await prepareUnfocusedCompactPane( + page, + workspace.workspaceId, + ); + await runWorkspaceActionFromCommandCenter(page, "Toggle left sidebar"); + await expect(originalPane.getByTestId("workspace-tab-switcher-trigger")).toBeVisible(); + await expect(otherPane.getByTestId("workspace-tab-switcher-trigger")).toBeVisible(); + await expectPaneHasWindowDragSurface(originalPane); + await expectPaneHasWindowDragSurface(otherPane); + } finally { + await workspace.cleanup(); + } +}); diff --git a/packages/app/src/components/split-container.tsx b/packages/app/src/components/split-container.tsx index dec4dde880..63a3144dda 100644 --- a/packages/app/src/components/split-container.tsx +++ b/packages/app/src/components/split-container.tsx @@ -772,6 +772,7 @@ const SplitPaneView = memo(function SplitPaneView({ const compactHeader = useMemo( () => ( + {renderCompactHeader(paneTabs, activeTabDescriptor?.key ?? "", compactHeaderActions)} ),