Menu popup: visibility, zoom sync, and tab fixes

Track menu popup visibility and propagate zoom level to the popup. Add menu_popup_visible_ flag, SendMenuPopupZoom(), and call it when creating/showing the popup and when adjusting zoom. Make CreateNewTab accept an optional URL and route popup/new-tab flows to it. Prevent per-tab child closes from triggering app shutdown by tracking closing_tab_browsers_ and adding ForgetClosingTabBrowser(). Treat MenuPopup role specially when enabling frame hit-testing.

Platform: remove usage of ApplyRoundedBrowserRegion and switch menu popup sizing to use resized client_size helpers (consolidate calculations across Win/Mac/Linux). UI: update menu-popup CSS/JS (new styling, font, zoom formatting API via NebulaMenuPopup.setZoomLevel), wire settings to use nebulaNative.postMessage for new-tab, and remove the static menu-popup.html. Misc: small chrome CSS/JS tweaks and ensure chrome state includes zoomLevel.
This commit is contained in:
Andrew Zambazos
2026-05-18 18:28:20 +12:00
parent e51594a010
commit c514e4faec
14 changed files with 156 additions and 130 deletions
+4 -1
View File
@@ -59,9 +59,10 @@ button:disabled {
.nebula-chrome {
display: grid;
grid-template-rows: 42px 52px;
grid-template-rows: 42px 52px 1fr;
height: 100%;
border-bottom: 1px solid var(--outline);
overflow: visible;
}
/* ── Title row ──────────────────────────────────────────────── */
@@ -253,6 +254,7 @@ button:disabled {
padding: 0 12px;
background: var(--surface-raised);
border-top: 1px solid var(--outline);
overflow: visible;
}
/* ── Lucide icon sizing ─────────────────────────────────────── */
@@ -361,3 +363,4 @@ button:disabled {
transform: rotate(360deg);
}
}