From b37746207a823377e55a72c215f56e45a1f1fd07 Mon Sep 17 00:00:00 2001 From: vegard Date: Thu, 19 Mar 2026 05:53:54 +0000 Subject: [PATCH] Resize n/w: inkrementell delta i stedet for kumulativ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Forrige versjon sendte total offset fra startposisjon på hvert pointermove-event, som ble addert gjentatte ganger og akselererte panelet ut av bildet. Nå beregnes delta fra forrige frame. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/components/blockshell/BlockShell.svelte | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/src/lib/components/blockshell/BlockShell.svelte b/frontend/src/lib/components/blockshell/BlockShell.svelte index 9acee1d..8c47f40 100644 --- a/frontend/src/lib/components/blockshell/BlockShell.svelte +++ b/frontend/src/lib/components/blockshell/BlockShell.svelte @@ -82,6 +82,8 @@ let resizeStartY = 0; let resizeStartW = 0; let resizeStartH = 0; + let resizeLastW = 0; + let resizeLastH = 0; // Track drag interaction let dragStartX = 0; @@ -205,6 +207,9 @@ resizeStartW = clampedWidth; resizeStartH = clampedHeight; + resizeLastW = clampedWidth; + resizeLastH = clampedHeight; + // Capture on the document level for smooth resizing window.addEventListener('pointermove', handleResizeMove); window.addEventListener('pointerup', handleResizeEnd); @@ -233,11 +238,14 @@ const clampedW = Math.min(constraints.maxWidth, Math.max(constraints.minWidth, newW)); const clampedH = Math.min(constraints.maxHeight, Math.max(constraints.minHeight, newH)); - // Position delta for n/w dragging: move origin to keep the opposite edge fixed + // Incremental position delta for n/w dragging let posDx = 0; let posDy = 0; - if (resizeDir.includes('w')) posDx = resizeStartW - clampedW; - if (resizeDir.includes('n')) posDy = resizeStartH - clampedH; + if (resizeDir.includes('w')) posDx = resizeLastW - clampedW; + if (resizeDir.includes('n')) posDy = resizeLastH - clampedH; + + resizeLastW = clampedW; + resizeLastH = clampedH; onResize?.(clampedW, clampedH, posDx, posDy); }