Native macOS-Titelleiste: titleBarStyle Overlay (echte Ampeln + gerundete Ecken), Zeile links eingerückt; WindowControls Electron-only

This commit is contained in:
2026-07-05 20:14:10 +02:00
parent 456bf29984
commit a750e87517
4 changed files with 36 additions and 61 deletions
+17 -7
View File
@@ -1298,14 +1298,24 @@ export function TopBar({
};
}, []);
// Unter Tauri (native macOS-Ampeln oben links via titleBarStyle "Overlay")
// braucht die Zeile links Platz, damit `dossier.` nicht darunter liegt.
const tauriNativeTitlebar =
typeof window !== "undefined" && "__TAURI_INTERNALS__" in window;
return (
// `data-tauri-drag-region`: die randlose (decorations:false) Titelleiste ist
// selbst der Fenster-Ziehbereich. Kind-Buttons/Dropdowns bleiben klickbar;
// nur die leeren Zonen ziehen das Fenster.
<header className="topbar" ref={headerRef} data-tauri-drag-region>
{/* Fensterknöpfe (Schliessen/Minimieren/Maximieren) GANZ LINKS — die
randlose Titelleiste beginnt mit ihnen (macOS-Konvention). Nur unter
Electron/Tauri sichtbar (sonst null). */}
// `data-tauri-drag-region`: die Titelleiste ist selbst der Fenster-Ziehbereich
// (macOS titleBarStyle "Overlay"). Kind-Buttons/Dropdowns bleiben klickbar;
// nur die leeren Zonen ziehen das Fenster. Unter Tauri bekommt die Zeile links
// einen Inset, damit `dossier.` nicht unter den nativen macOS-Ampeln liegt.
<header
className={`topbar${tauriNativeTitlebar ? " topbar-native-inset" : ""}`}
ref={headerRef}
data-tauri-drag-region
>
{/* Fensterknöpfe NUR unter Electron (randloses frame:false-Fenster) — unter
Tauri liefern die NATIVEN macOS-Ampeln Schliessen/Minimieren/Maximieren,
daher rendert WindowControls dort null. */}
<WindowControls />
{/* Kleine Wortmarke „dossier" (OCS-Stil, klein/kleingeschrieben) + Quick-