diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/EnvelopeGenerator.ReceiverUIBlazor/wwwroot/js/pdfInterop.js b/EnvelopeGenerator.ReceiverUIBlazor/wwwroot/js/pdfInterop.js index 8d559304..a17f27b0 100644 --- a/EnvelopeGenerator.ReceiverUIBlazor/wwwroot/js/pdfInterop.js +++ b/EnvelopeGenerator.ReceiverUIBlazor/wwwroot/js/pdfInterop.js @@ -233,18 +233,28 @@ lastY: 0, }; + function getPos(evt) { + const rect = canvas.getBoundingClientRect(); + const scaleX = rect.width ? canvas.width / rect.width : 1; + const scaleY = rect.height ? canvas.height / rect.height : 1; + return { + x: (evt.clientX - rect.left) * scaleX, + y: (evt.clientY - rect.top) * scaleY, + }; + } + function start(e) { padState.drawing = true; - const rect = canvas.getBoundingClientRect(); - padState.lastX = e.clientX - rect.left; - padState.lastY = e.clientY - rect.top; + const pos = getPos(e); + padState.lastX = pos.x; + padState.lastY = pos.y; } function move(e) { if (!padState.drawing) return; - const rect = canvas.getBoundingClientRect(); - const x = e.clientX - rect.left; - const y = e.clientY - rect.top; + const pos = getPos(e); + const x = pos.x; + const y = pos.y; ctx.beginPath(); ctx.moveTo(padState.lastX, padState.lastY); ctx.lineTo(x, y);