diff client/src/components/gauge/Waterlevel.vue @ 4228:b8d578e42b4b

pdfprint: generate a new transform object instead of manipulating the given one. See https://github.com/d3/d3-zoom#zoomTransform
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 20 Aug 2019 10:10:21 +0200
parents 6f0cd9a551b3
children 0f0628189cd7
line wrap: on
line diff
--- a/client/src/components/gauge/Waterlevel.vue	Mon Aug 19 14:23:08 2019 +0200
+++ b/client/src/components/gauge/Waterlevel.vue	Tue Aug 20 10:10:21 2019 +0200
@@ -948,19 +948,13 @@
         if (d3.event.sourceEvent && d3.event.sourceEvent.type === "brush")
           return; // ignore zoom-by-brush
         let t = d3.event.transform;
-        // Set the last zoom level and recalculate x,y for pdf-export
         if (zoomLevel) {
-          t.x = (zoomLevel.x * dimensions.width) / zoomLevel.width;
-          t.k = zoomLevel.k;
-          t.y = zoomLevel.y;
-          scaleForZoom(t);
-          // reset zoomming after drawing for pdf
-          t.k = 1;
-          t.x = 0;
-          t.y = 0;
-        } else {
-          scaleForZoom(t);
+          const tx = (zoomLevel.x * dimensions.width) / zoomLevel.width;
+          const k = zoomLevel.k;
+          const ty = zoomLevel.y;
+          t = d3.zoomIdentity.translate(tx, ty).scale(k);
         }
+        scaleForZoom(t);
       });
       zoom.on("start", () => {
         svg.select(".chart-dot").style("opacity", 0);