Ver Fonte

improved zoom handling

Gildas há 7 anos atrás
pai
commit
235a17c615
1 ficheiros alterados com 4 adições e 2 exclusões
  1. 4 2
      lib/hooks/hooks-frame.js

+ 4 - 2
lib/hooks/hooks-frame.js

@@ -134,13 +134,15 @@ this.hooksFrame = this.hooksFrame || (() => {
 					};
 				});
 			}
-			const zoomFactor = Math.min((clientHeight + window.scrollY) / scrollHeight, (clientWidth + window.scrollX) / scrollWidth);
+			const zoomFactorX = (clientHeight + window.scrollY) / scrollHeight;
+			const zoomFactorY = (clientWidth + window.scrollX) / scrollWidth;
+			const zoomFactor = Math.min(zoomFactorX, zoomFactorY);
 			if (zoomFactor < 1) {
 				const transform = document.documentElement.style.getPropertyValue("transform");
 				const transformPriority = document.documentElement.style.getPropertyPriority("transform");
 				const transformOrigin = document.documentElement.style.getPropertyValue("transform-origin");
 				const transformOriginPriority = document.documentElement.style.getPropertyPriority("transform-origin");
-				document.documentElement.style.setProperty("transform-origin", "50% 0", "important");
+				document.documentElement.style.setProperty("transform-origin", (zoomFactorX < 1 ? "50%" : "0") + " " + (zoomFactorY < 1 ? "50%" : "0") + " 0", "important");
 				document.documentElement.style.setProperty("transform", "scale3d(" + zoomFactor + ", " + zoomFactor + ", 1)", "important");
 				dispatchEvent(new UIEvent("resize"));
 				dispatchEvent(new UIEvent("scroll"));