From c1bea959f3d638206273c8ccf263d687061e0b1d Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 23 Feb 2026 14:23:40 -0500 Subject: [PATCH] middle drag for mouse --- src/moto/orbit.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/moto/orbit.js b/src/moto/orbit.js index 99bfa367..a060f7b6 100644 --- a/src/moto/orbit.js +++ b/src/moto/orbit.js @@ -390,6 +390,15 @@ class Orbit extends EventDispatcher { if (scope.enabled === false) return; event.preventDefault(); + // keep wheel as dolly, but treat middle-button drag like right-button drag + // in default orbit bindings. + const touchSynthesized = Boolean(event?.sourceCapabilities?.firesTouchEvents); + if (!touchSynthesized + && event.button === MOUSE.MIDDLE + && scope.mouseButtons.ZOOM === MOUSE.MIDDLE + && scope.mouseButtons.PAN === MOUSE.RIGHT) { + state = STATE.PAN; + } else { switch (event.button) { case scope.mouseButtons.ORBIT: state = event.metaKey ? STATE.PAN : STATE.ROTATE; @@ -401,6 +410,7 @@ class Orbit extends EventDispatcher { state = STATE.PAN; break; } + } switch (state) { case STATE.ROTATE: