windows stop flush with the taskbar's top edge instead of tucking 6px under it

This commit is contained in:
Martin Dvořák 2026-09-24 14:29:34 +00:00
commit 8ae719093f
2 changed files with 9 additions and 2 deletions

View file

@ -227,7 +227,10 @@ list reordering, not free placement. Don't confuse the two.
`moveWin` clamps `x`/`y` (dragging can't push a window off any edge or under
the panel), a `resize` effect re-clamps on browser resize, and
`.win-window.centered` carries `max-width`/`max-height`. Keep these in sync if
you add a new window path, or windows will escape the viewport.
you add a new window path, or windows will escape the viewport. The bottom
limit is `TASKBAR_HEIGHT = 54` in `WindowsDesktop.tsx` (panel `bottom:10px` +
`height:44px`), so a window lands flush with the panel's top edge; note
`useDesktopIcons.ts` has its **own** `TASKBAR_HEIGHT = 48` for the icon grid.
- Exposing the **dev** server over a tunnel needs the tunnel host in
`allowedDevOrigins` (`next.config.ts`). Without it Next dev rejects the
cross-origin HMR WebSocket, so the client never hydrates — the page is SSR

View file

@ -9,7 +9,11 @@ import { useTheme } from "./useTheme";
import { useDesktopIcons } from "./useDesktopIcons";
import { WALLPAPER, friends } from "../data";
const TASKBAR_HEIGHT = 48;
// The panel is anchored at `bottom: 10px` and is 44px tall, so the usable
// desktop area ends 54px above the viewport bottom. Windows are clamped to that
// line, so a window dragged down lands flush with the top of the taskbar with
// nothing hidden behind it.
const TASKBAR_HEIGHT = 54;
const LEFT_APPS = APPS.filter((a) => a.id !== "services" && a.id !== "friends");