From 4863c84ba5a4e7531b9a1e139f036de0453e89e2 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 17 Sep 2025 15:22:34 +0200 Subject: [PATCH 1/3] prevent default when pinch zooming on element with nowheel class --- packages/system/src/xypanzoom/eventhandler.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/system/src/xypanzoom/eventhandler.ts b/packages/system/src/xypanzoom/eventhandler.ts index e6dda425..217ecd0f 100644 --- a/packages/system/src/xypanzoom/eventhandler.ts +++ b/packages/system/src/xypanzoom/eventhandler.ts @@ -72,6 +72,9 @@ export function createPanOnScrollHandler({ }: PanOnScrollParams) { return (event: any) => { if (isWrappedWithClass(event, noWheelClassName)) { + if (event.ctrlKey) { + event.preventDefault(); // stop native page zoom + } return false; } event.preventDefault(); From 70b67260470738dd0d88ed8ab558d400097be785 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 17 Sep 2025 15:23:25 +0200 Subject: [PATCH 2/3] chore(changeset) --- .changeset/lovely-lemons-approve.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/lovely-lemons-approve.md diff --git a/.changeset/lovely-lemons-approve.md b/.changeset/lovely-lemons-approve.md new file mode 100644 index 00000000..c6b72543 --- /dev/null +++ b/.changeset/lovely-lemons-approve.md @@ -0,0 +1,7 @@ +--- +'@xyflow/system': patch +'@xyflow/react': patch +'@xyflow/svelte': patch +--- + +Prevent native page zoom when pinch zooming on node with nowheel class From 92ee74d3c864ea459b37b0b3b95273e7648c39d0 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 17 Sep 2025 15:23:54 +0200 Subject: [PATCH 3/3] rephrase comment --- packages/system/src/xypanzoom/eventhandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/system/src/xypanzoom/eventhandler.ts b/packages/system/src/xypanzoom/eventhandler.ts index 217ecd0f..583563a3 100644 --- a/packages/system/src/xypanzoom/eventhandler.ts +++ b/packages/system/src/xypanzoom/eventhandler.ts @@ -73,7 +73,7 @@ export function createPanOnScrollHandler({ return (event: any) => { if (isWrappedWithClass(event, noWheelClassName)) { if (event.ctrlKey) { - event.preventDefault(); // stop native page zoom + event.preventDefault(); // stop native page zoom for pinch zooming } return false; }