From 4cd099f083b09938497bb0e6fe0ee8fb1596b827 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 11 Apr 2024 12:03:13 +0200 Subject: [PATCH] fix(zooming): allow pinch zoom when preventScrolling=false --- packages/system/src/xypanzoom/eventhandler.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/system/src/xypanzoom/eventhandler.ts b/packages/system/src/xypanzoom/eventhandler.ts index 0c2c1d5f..2f395300 100644 --- a/packages/system/src/xypanzoom/eventhandler.ts +++ b/packages/system/src/xypanzoom/eventhandler.ts @@ -138,7 +138,10 @@ export function createPanOnScrollHandler({ export function createZoomOnScrollHandler({ noWheelClassName, preventScrolling, d3ZoomHandler }: ZoomOnScrollParams) { return function (this: Element, event: any, d: unknown) { - if (!preventScrolling || isWrappedWithClass(event, noWheelClassName)) { + // we still want to enable pinch zooming even if preventScrolling is set to false + const preventZoom = !preventScrolling && event.type === 'wheel' && !event.ctrlKey; + + if (preventZoom || isWrappedWithClass(event, noWheelClassName)) { return null; }