From 0715abdf74702fcb09134f21d913c1f5e32f852c Mon Sep 17 00:00:00 2001 From: Skyler Lehmkuhl Date: Wed, 8 Jan 2025 04:36:37 -0500 Subject: [PATCH] fix mouse clicks in wrong position in color selection or outliner when zoomed in or out --- src/main.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main.js b/src/main.js index 8c67aaf..91d1766 100644 --- a/src/main.js +++ b/src/main.js @@ -1778,13 +1778,14 @@ function getMousePos(canvas, evt, skipOffsets = false, skipZoom = false) { var rect = canvas.getBoundingClientRect(); let offsetX = canvas.offsetX || 0; let offsetY = canvas.offsetY || 0; + let zoomLevel = canvas.zoomLevel || 1; if (skipOffsets) { offsetX = 0; offsetY = 0; } return { - x: (evt.clientX + offsetX - rect.left) / (skipZoom ? 1 : context.zoomLevel), - y: (evt.clientY + offsetY - rect.top) / (skipZoom ? 1 : context.zoomLevel), + x: (evt.clientX + offsetX - rect.left) / (skipZoom ? 1 : zoomLevel), + y: (evt.clientY + offsetY - rect.top) / (skipZoom ? 1 : zoomLevel), }; } @@ -4297,6 +4298,7 @@ function updateScrollPosition(zoomFactor) { (canvas.offsetX + context.mousePos.x) * zoomFactor - context.mousePos.x; canvas.offsetY = (canvas.offsetY + context.mousePos.y) * zoomFactor - context.mousePos.y; + canvas.zoomLevel = context.zoomLevel } } } @@ -4337,6 +4339,7 @@ function stage() { // stage.height = config.fileHeight stage.offsetX = 0; stage.offsetY = 0; + stage.zoomLevel = context.zoomLevel let lastResizeTime = 0; const throttleIntervalMs = 20;