From 4fc6d7f889662c9ea369389e300799e6deb30357 Mon Sep 17 00:00:00 2001 From: "Lukas Rieger (Blue)" Date: Sat, 17 Jun 2023 11:53:39 +0200 Subject: [PATCH] Fix stuck moving when window looses focus. Fixes: #408 --- .../js/controls/freeflight/keyboard/KeyHeightControls.js | 7 +++++++ .../js/controls/freeflight/keyboard/KeyMoveControls.js | 9 +++++++++ .../src/js/controls/map/keyboard/KeyAngleControls.js | 7 +++++++ .../src/js/controls/map/keyboard/KeyMoveControls.js | 9 +++++++++ .../src/js/controls/map/keyboard/KeyRotateControls.js | 7 +++++++ .../src/js/controls/map/keyboard/KeyZoomControls.js | 7 +++++++ 6 files changed, 46 insertions(+) diff --git a/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyHeightControls.js b/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyHeightControls.js index 7b4ea6c3..1013d1eb 100644 --- a/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyHeightControls.js +++ b/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyHeightControls.js @@ -66,11 +66,13 @@ export class KeyHeightControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -120,4 +122,9 @@ export class KeyHeightControls { } } + onStop = evt => { + this.up = false; + this.down = false; + } + } \ No newline at end of file diff --git a/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyMoveControls.js b/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyMoveControls.js index 81509d9b..f64ddbf6 100644 --- a/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyMoveControls.js +++ b/BlueMapCommon/webapp/src/js/controls/freeflight/keyboard/KeyMoveControls.js @@ -78,11 +78,13 @@ export class KeyMoveControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -152,4 +154,11 @@ export class KeyMoveControls { } } + onStop = evt => { + this.up = false; + this.down = false; + this.left = false; + this.right = false; + } + } \ No newline at end of file diff --git a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyAngleControls.js b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyAngleControls.js index 2e2e063f..fcdb2529 100644 --- a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyAngleControls.js +++ b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyAngleControls.js @@ -67,11 +67,13 @@ export class KeyAngleControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -121,4 +123,9 @@ export class KeyAngleControls { } } + onStop = evt => { + this.up = false; + this.down = false; + } + } \ No newline at end of file diff --git a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyMoveControls.js b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyMoveControls.js index 30aaf4a6..a91aaed0 100644 --- a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyMoveControls.js +++ b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyMoveControls.js @@ -78,11 +78,13 @@ export class KeyMoveControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -152,4 +154,11 @@ export class KeyMoveControls { } } + onStop = evt => { + this.up = false; + this.down = false; + this.left = false; + this.right = false; + } + } \ No newline at end of file diff --git a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyRotateControls.js b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyRotateControls.js index 6ed2c4e7..1413182b 100644 --- a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyRotateControls.js +++ b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyRotateControls.js @@ -67,11 +67,13 @@ export class KeyRotateControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -121,4 +123,9 @@ export class KeyRotateControls { } } + onStop = evt => { + this.left = false; + this.right = false; + } + } \ No newline at end of file diff --git a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyZoomControls.js b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyZoomControls.js index 0c884dfd..dd9a5b16 100644 --- a/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyZoomControls.js +++ b/BlueMapCommon/webapp/src/js/controls/map/keyboard/KeyZoomControls.js @@ -65,11 +65,13 @@ export class KeyZoomControls { window.addEventListener("keydown", this.onKeyDown); window.addEventListener("keyup", this.onKeyUp); + window.addEventListener("blur", this.onStop) } stop() { window.removeEventListener("keydown", this.onKeyDown); window.removeEventListener("keyup", this.onKeyUp); + window.removeEventListener("blur", this.onStop) } /** @@ -119,4 +121,9 @@ export class KeyZoomControls { } } + onStop = evt => { + this.in = false; + this.out = false; + } + } \ No newline at end of file