From 2269eada4245e07b680b558d6af90d9a2b18c488 Mon Sep 17 00:00:00 2001 From: GitHub Copilot Date: Thu, 29 Jan 2026 22:45:09 +0000 Subject: [PATCH] fix: focus existing session tab on mobile Safari Use window.open with target, then call focus() when available to switch to an existing session tab. Fall back to same-tab navigation if the popup is blocked or focus is unavailable. --- src/webterm/local_server.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/webterm/local_server.py b/src/webterm/local_server.py index a47956b..5924638 100644 --- a/src/webterm/local_server.py +++ b/src/webterm/local_server.py @@ -1132,8 +1132,7 @@ class LocalServer: card.appendChild(body); card.appendChild(meta); card.onclick = () => {{ - // Use tile slug as window name to reuse the same tab for each tile - window.open(`/?route_key=${{encodeURIComponent(tile.slug)}}`, `webterm-${{tile.slug}}`); + openTile(tile); }}; card.img = img; return card; @@ -1165,7 +1164,14 @@ class LocalServer: // Typeahead search functions function openTile(tile) {{ if (!tile || !tile.slug) return; - window.open(`/?route_key=${{encodeURIComponent(tile.slug)}}`, `webterm-${{tile.slug}}`); + const url = `/?route_key=${{encodeURIComponent(tile.slug)}}`; + const target = `webterm-${{tile.slug}}`; + const win = window.open(url, target); + if (win && typeof win.focus === 'function') {{ + win.focus(); + }} else {{ + window.location.href = url; + }} // Dismiss typeahead after launching from floating results. searchQuery = ''; activeResultIndex = -1;