From a805010e751189ac8733bb32fa3ad23f56574c69 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Wed, 24 Dec 2025 04:36:17 -0800 Subject: [PATCH 1/2] Use raw mouse input in free flight mode --- .../webapp/src/js/controls/freeflight/FreeFlightControls.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/webapp/src/js/controls/freeflight/FreeFlightControls.js b/common/webapp/src/js/controls/freeflight/FreeFlightControls.js index 746cccf5a..73ae98f4e 100644 --- a/common/webapp/src/js/controls/freeflight/FreeFlightControls.js +++ b/common/webapp/src/js/controls/freeflight/FreeFlightControls.js @@ -152,7 +152,9 @@ export class FreeFlightControls { document.body.requestFullscreen() .finally(() => { - this.target.requestPointerLock(); + this.target.requestPointerLock({ + unadjustedMovement: true + }); }); } From 64736553117715002e4cdaad3e51b2faa03e618f Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Thu, 25 Dec 2025 17:41:09 -0800 Subject: [PATCH 2/2] Add fallback in case raw mouse input is not supported --- .../src/js/controls/freeflight/FreeFlightControls.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/common/webapp/src/js/controls/freeflight/FreeFlightControls.js b/common/webapp/src/js/controls/freeflight/FreeFlightControls.js index 73ae98f4e..84b8db2e4 100644 --- a/common/webapp/src/js/controls/freeflight/FreeFlightControls.js +++ b/common/webapp/src/js/controls/freeflight/FreeFlightControls.js @@ -152,8 +152,16 @@ export class FreeFlightControls { document.body.requestFullscreen() .finally(() => { + // try with unadjustedMovement first and fall back without it if not supported this.target.requestPointerLock({ unadjustedMovement: true + }) + .catch(err => { + if (err.name === "NotSupportedError") { + return this.target.requestPointerLock(); + } else { + throw err; + } }); }); }