fix: align Hyprland overlay windows to mpv and stop pinning them

- Force-apply exact Hyprland move/resize/setprop dispatches when bounds are provided
- Stop pinning overlay windows; toggle pin off when Hyprland reports pinned=true
- Compensate stats overlay outer placement for Electron/Wayland content insets
- Make stats overlay window and page opaque so mpv cannot show through transparent insets
- Constrain stats app to h-screen with internal scroll so content covers mpv from y=0
- Lock overlay/stats window titles against page-title-updated events
- Add regression coverage for placement dispatches, inset compensation, and CSS overlay mode
This commit is contained in:
2026-05-03 23:56:52 -07:00
parent 8f43f8825d
commit 2b60c20711
15 changed files with 398 additions and 85 deletions
+2 -2
View File
@@ -127,7 +127,7 @@ export function App() {
);
return (
<div className="min-h-screen flex flex-col bg-ctp-base">
<div className="h-screen min-h-0 overflow-hidden flex flex-col bg-ctp-base">
<header className="px-4 pt-3 pb-0">
<button
type="button"
@@ -139,7 +139,7 @@ export function App() {
</button>
<TabBar activeTab={activeTab} onTabChange={handleTabChange} />
</header>
<main className="flex-1 overflow-y-auto p-4">
<main className="flex-1 min-h-0 overflow-y-auto p-4">
{mediaDetail ? (
<Suspense fallback={<LoadingSurface label="Loading media detail..." />}>
<MediaDetailView