diff --git a/client/src/index.ts b/client/src/index.ts index 266f34e2..a5c09a45 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -11,6 +11,7 @@ import { FeatureSwitches } from "./featureswitches"; import { LogPanel } from "./panels/logpanel"; import { getAirbases, getBullseye as getBullseyes, getConfig, getMission, getUnits, setAddress, toggleDemoEnabled } from "./server/server"; import { UnitDataTable } from "./units/unitdatatable"; +import { keyEventWasInInput } from "./other/utils"; var map: Map; @@ -167,6 +168,10 @@ function setupEvents() { /* Keyup events */ document.addEventListener("keyup", ev => { + + if ( keyEventWasInInput( ev ) ) { + return; + } switch (ev.code) { diff --git a/client/src/other/utils.ts b/client/src/other/utils.ts index 4cacf4a4..5e591a94 100644 --- a/client/src/other/utils.ts +++ b/client/src/other/utils.ts @@ -69,6 +69,15 @@ export function distance(lat1: number, lon1: number, lat2: number, lon2: number) } +export function keyEventWasInInput( event:KeyboardEvent ) { + + const target = event.target; + + return ( target instanceof HTMLElement && ( [ "INPUT", "TEXTAREA" ].includes( target.nodeName ) ) ); + +} + + export function rad2deg(rad: number) { var pi = Math.PI; return rad / (pi / 180); diff --git a/client/src/units/unitsmanager.ts b/client/src/units/unitsmanager.ts index cfbee371..b8badd5e 100644 --- a/client/src/units/unitsmanager.ts +++ b/client/src/units/unitsmanager.ts @@ -3,6 +3,7 @@ import { getMap, getUnitDataTable } from ".."; import { Unit } from "./unit"; import { cloneUnit } from "../server/server"; import { IDLE, MOVE_UNIT } from "../map/map"; +import { keyEventWasInInput } from "../other/utils"; export class UnitsManager { #units: { [ID: number]: Unit }; @@ -345,7 +346,7 @@ export class UnitsManager { #onKeyDown(event: KeyboardEvent) { - if (event.key === "Delete") + if ( !keyEventWasInInput( event ) && event.key === "Delete") { this.selectedUnitsDelete(); }