diff --git a/frontend/src/ts/controllers/input-controller.ts b/frontend/src/ts/controllers/input-controller.ts index 7d351f7b0..411bdacae 100644 --- a/frontend/src/ts/controllers/input-controller.ts +++ b/frontend/src/ts/controllers/input-controller.ts @@ -834,9 +834,6 @@ $(document).keydown(async (event) => { } TestInput.recordKeypressSpacing(); TestInput.setKeypressDuration(performance.now()); - setTimeout(() => { - TestInput.recordKeydownTime(event.code); - }, 0); TestInput.setKeypressNotAfk(); //blocking firefox from going back in history with backspace @@ -950,6 +947,18 @@ $(document).keydown(async (event) => { isBackspace = event.key === "Backspace" || event.key === "delete"; }); +$("#wordsInput").keydown((event) => { + setTimeout(() => { + TestInput.recordKeydownTime(event.code); + }, 0); +}); + +$("#wordsInput").keyup((event) => { + setTimeout(() => { + TestInput.recordKeyupTime(event.code); + }, 0); +}); + $("#wordsInput").keyup((event) => { if (!event.originalEvent?.isTrusted || TestUI.testRestarting) { event.preventDefault(); @@ -966,7 +975,6 @@ $("#wordsInput").keyup((event) => { ); TestInput.pushKeypressDuration(diff); } - TestInput.recordKeyupTime(event.code); TestInput.setKeypressDuration(now); Monkey.stop(); }); diff --git a/frontend/src/ts/test/test-input.ts b/frontend/src/ts/test/test-input.ts index 4b13b3a06..cdf05d67e 100644 --- a/frontend/src/ts/test/test-input.ts +++ b/frontend/src/ts/test/test-input.ts @@ -239,15 +239,19 @@ export function setKeypressDuration(val: number): void { let newKeypresDurationArray: number[] = []; export function recordKeyupTime(key: string): void { + if (keysObj[key] === undefined) return; const now = performance.now(); const diff = Math.abs(keysObj[key] - now); - newKeypresDurationArray.push(roundTo2(diff)); + if (/(Key[A-Z])|(Digit[0-9])|Space/.test(key)) { + newKeypresDurationArray.push(roundTo2(diff)); + } delete keysObj[key]; updateOverlap(); } export function recordKeydownTime(key: string): void { + if (keysObj[key] !== undefined) return; keysObj[key] = performance.now(); updateOverlap();