From b82a0749b1de14a96bd7f17af53fa838ee7a1d50 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Tue, 4 Apr 2023 19:14:59 +0200 Subject: [PATCH] fixed maxZoom --- src/renderer/renderElement.ts | 46 ++++++++++++++--------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/src/renderer/renderElement.ts b/src/renderer/renderElement.ts index db1c9e37f..836f75bcb 100644 --- a/src/renderer/renderElement.ts +++ b/src/renderer/renderElement.ts @@ -108,42 +108,32 @@ export const cappedElementCanvasSize = ( if (isLinearElement(element) || isFreeDrawElement(element)) { const [x1, y1, x2, y2] = getElementAbsoluteCoords(element); - let width = - distance(x1, x2) * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; - let height = - distance(y1, y2) * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; + let width = distance(x1, x2) * window.devicePixelRatio + padding * 2; + let height = distance(y1, y2) * window.devicePixelRatio + padding * 2; - const size = width * height; + const size = width * height * zoomValue * zoomValue; if (size > sizelimit) { - zoomValue = Math.sqrt(sizelimit / size) as NormalizedZoomValue; - width = - distance(x1, x2) * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; - height = - distance(y1, y2) * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; + zoomValue = Math.sqrt( + sizelimit / (width * height), + ) as NormalizedZoomValue; + width = distance(x1, x2) * window.devicePixelRatio + padding * 2; + height = distance(y1, y2) * window.devicePixelRatio + padding * 2; } + width *= zoomValue; + height *= zoomValue; return { width, height, zoomValue }; } - let width = - element.width * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; - let height = - element.height * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; + let width = element.width * window.devicePixelRatio + padding * 2; + let height = element.height * window.devicePixelRatio + padding * 2; - const size = width * height; + const size = width * height * zoomValue * zoomValue; if (size > sizelimit) { - zoomValue = Math.sqrt(sizelimit / size) as NormalizedZoomValue; - width = - element.width * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; - height = - element.height * window.devicePixelRatio * zoomValue + - padding * zoomValue * 2; + zoomValue = Math.sqrt(sizelimit / (width * height)) as NormalizedZoomValue; + width = element.width * window.devicePixelRatio + padding * 2; + height = element.height * window.devicePixelRatio + padding * 2; } + width *= zoomValue; + height *= zoomValue; return { width, height, zoomValue }; };