diff --git a/frontend/src/lib/components/canvas/Canvas.svelte b/frontend/src/lib/components/canvas/Canvas.svelte index c55e7c5..ded668b 100644 --- a/frontend/src/lib/components/canvas/Canvas.svelte +++ b/frontend/src/lib/components/canvas/Canvas.svelte @@ -426,6 +426,18 @@ }; } + // --- Reset zoom (ankret til viewport-sentrum) --- + function resetZoom() { + const cx = viewport.width / 2; + const cy = viewport.height / 2; + const scale = 1.0 / camera.zoom; + camera = { + x: cx - scale * (cx - camera.x), + y: cy - scale * (cy - camera.y), + zoom: 1.0, + }; + } + // --- Fullscreen --- function toggleFullscreen() { isFullscreen = !isFullscreen; @@ -478,7 +490,7 @@ ondblclick={(e) => { if (!(e.target as HTMLElement).closest('[data-canvas-object-id]') && !(e.target as HTMLElement).closest('.canvas-toolbar')) { - camera = { ...camera, zoom: 1.0 }; + resetZoom(); } }} ontouchstart={handleTouchStart} @@ -496,7 +508,7 @@ title="Zoom ut (−15%)" aria-label="Zoom ut" >− - +