Center approval popup over focused window to avoid macOS Space switch
check / check (push) Failing after 3h10m55s

Use getLastFocused to find the current Chrome window and position the
approval popup centered over it. This keeps the popup on the same
macOS virtual desktop instead of switching Spaces.
このコミットが含まれているのは:
2026-02-26 04:03:45 +07:00
コミット dce3b4aa08
+21 -8
ファイルの表示
@@ -89,19 +89,32 @@ function requestApproval(origin, hostname) {
pendingApprovals[id] = { origin, hostname, resolve }; pendingApprovals[id] = { origin, hostname, resolve };
const popupUrl = runtime.getURL("src/popup/index.html?approval=" + id); const popupUrl = runtime.getURL("src/popup/index.html?approval=" + id);
windowsApi.create( const popupWidth = 400;
{ const popupHeight = 500;
// Center the popup over the focused window so macOS keeps it
// on the same Space instead of switching desktops.
windowsApi.getLastFocused((currentWin) => {
const opts = {
url: popupUrl, url: popupUrl,
type: "popup", type: "popup",
width: 400, width: popupWidth,
height: 500, height: popupHeight,
}, };
(win) => { if (currentWin) {
opts.left = Math.round(
currentWin.left + (currentWin.width - popupWidth) / 2,
);
opts.top = Math.round(
currentWin.top + (currentWin.height - popupHeight) / 2,
);
}
windowsApi.create(opts, (win) => {
if (win) { if (win) {
pendingApprovals[id].windowId = win.id; pendingApprovals[id].windowId = win.id;
} }
}, });
); });
}); });
} }