From 02fcb06b3bf6b73bcc55695242cbe21ad42b3942 Mon Sep 17 00:00:00 2001 From: kts of kettek Date: Fri, 9 Feb 2024 23:13:35 -0800 Subject: [PATCH] Don't use movementX/movementY Garbage libwebkit gtk backend gives absolute coordinates, not delta --- frontend/src/sections/Editor2D.svelte | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/src/sections/Editor2D.svelte b/frontend/src/sections/Editor2D.svelte index e249e1a..0a2a8c8 100644 --- a/frontend/src/sections/Editor2D.svelte +++ b/frontend/src/sections/Editor2D.svelte @@ -85,9 +85,13 @@ function canvasMousedown(node) { let buttons: Set = new Set() + let x: number = 0 + let y: number = 0 node.addEventListener('mousedown', (e: MouseEvent) => { buttons.add(e.button) + x = e.clientX + y = e.clientY }) node.addEventListener('wheel', (e: WheelEvent) => { @@ -110,12 +114,17 @@ window.addEventListener('mousemove', (e: MouseEvent) => { if (buttons.size === 0) return + let dx = e.clientX - x + let dy = e.clientY - y + x = e.clientX + y = e.clientY + if (buttons.has(0)) { console.log('0') } if (buttons.has(1)) { - offsetX += e.movementX - offsetY += e.movementY + offsetX += dx + offsetY += dy capOffset() } if (buttons.has(2)) { @@ -135,7 +144,7 @@
- + e.preventDefault()}>