From 3f74f03f2eb2ac73ee4035a28fbd7cbb7f375eb8 Mon Sep 17 00:00:00 2001 From: usrnk1 <7547651+usrnk1@users.noreply.github.com> Date: Tue, 27 Oct 2026 20:47:38 +0100 Subject: [PATCH] fix(app): keep location shortcut working after tooltip hover (#59680) --- packages/app/e2e/regression/new-session.spec.ts | 17 +++++++++++++++++ packages/app/src/new-session/view.tsx | 7 ++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/app/e2e/regression/new-session.spec.ts b/packages/app/e2e/regression/new-session.spec.ts index ce0622e289c..54159b0e75a 100644 --- a/packages/app/e2e/regression/new-session.spec.ts +++ b/packages/app/e2e/regression/new-session.spec.ts @@ -51,6 +51,23 @@ test("the new session screen does not show session details", async ({ page }) => await expect(page.getByRole("button", { name: "Session details", exact: true })).toHaveCount(0) }) +test("the location shortcut keeps cycling after hovering its icon", async ({ page }) => { + const view = await openDraft(page, { name: "LocationShortcut" }) + const modifier = await page.evaluate(() => (/Mac/i.test(navigator.platform) ? "Meta" : "Control")) + await expect(view.editor).toBeFocused() + await view.editor.press(`${modifier}+Alt+KeyL`) + await expect(newSessionLocation(page)).toContainText("New worktree") + await expect(view.editor).toBeFocused() + await view.editor.press(`${modifier}+Alt+KeyL`) + await expect(newSessionLocation(page)).not.toContainText("New worktree") + await expect(page.locator('[data-slot="new-session-location-path"]')).toHaveText(view.directory) + await page.locator('[data-slot="new-session-location-icon"]').hover() + await expect(page.getByRole("tooltip")).toContainText("Toggle session location") + await view.editor.press(`${modifier}+Alt+KeyL`) + await expect(newSessionLocation(page)).toContainText("New worktree") + await expect(view.editor).toBeFocused() +}) + for (const row of [ { name: "POSIX", diff --git a/packages/app/src/new-session/view.tsx b/packages/app/src/new-session/view.tsx index bfdd3b04000..8d68e6670cd 100644 --- a/packages/app/src/new-session/view.tsx +++ b/packages/app/src/new-session/view.tsx @@ -361,7 +361,8 @@ function NewSessionLocation(props: { {props.branch} - + {/* An open tooltip can outlive this row; keep its path instead of a stale Show accessor. */} + {(directory) => (