From f09cc303b650765cb1bcb3047e6c388ad7c30473 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Sat, 15 Nov 2025 22:21:19 +0000 Subject: [PATCH] Pass keyboard events from inner reviewer --- ts/routes/reviewer-inner/index.ts | 19 +++++++++++++------ ts/routes/reviewer/reviewer.ts | 4 ++-- ts/routes/reviewer/reviewerRequest.ts | 4 +--- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ts/routes/reviewer-inner/index.ts b/ts/routes/reviewer-inner/index.ts index 8aaa92e69..1a71ac3eb 100644 --- a/ts/routes/reviewer-inner/index.ts +++ b/ts/routes/reviewer-inner/index.ts @@ -78,14 +78,21 @@ addEventListener("message", async (e: MessageEvent) => { }); addEventListener("keydown", (e) => { - const keyInfo: ReviewerRequest = { type: "keypress", key: e.key, ctrl: e.ctrlKey, shift: e.shiftKey }; + const keyInfo: ReviewerRequest = { + type: "keypress", + eventInit: { + key: e.key, + code: e.code, + altKey: e.altKey, + ctrlKey: e.ctrlKey, + shiftKey: e.shiftKey, + metaKey: e.metaKey, + repeat: e.repeat, + }, + }; if ( - e.key.length == 1 && "1234 ".includes(e.key) + !document.activeElement?.matches("input[type=text], input[type=number], textarea") && e.key !== "Enter" ) { - if (!document.activeElement?.matches("input[type=text], input[type=number], textarea")) { - postParentMessage(keyInfo); - } - } else { postParentMessage(keyInfo); } }); diff --git a/ts/routes/reviewer/reviewer.ts b/ts/routes/reviewer/reviewer.ts index 6f5eb6734..6c344baf1 100644 --- a/ts/routes/reviewer/reviewer.ts +++ b/ts/routes/reviewer/reviewer.ts @@ -84,7 +84,7 @@ export class ReviewerState { break; } case "keypress": { - this.handleKeyPress(e.data.key, e.data.ctrl, e.data.shift); + dispatchEvent(new KeyboardEvent("keydown", e.data.eventInit)); break; } case "setstorage": { @@ -272,7 +272,7 @@ export class ReviewerState { } public registerShortcuts() { - document.addEventListener("keydown", this.onKeyDown.bind(this)); + window.addEventListener("keydown", this.onKeyDown.bind(this)); } sendInnerRequest(message: InnerReviewerRequest) { diff --git a/ts/routes/reviewer/reviewerRequest.ts b/ts/routes/reviewer/reviewerRequest.ts index 67c9d408c..3b9b51fab 100644 --- a/ts/routes/reviewer/reviewerRequest.ts +++ b/ts/routes/reviewer/reviewerRequest.ts @@ -13,9 +13,7 @@ interface UpdateTypedAnswerMessage { interface KeyPressMessage { type: "keypress"; - key: string; - ctrl: boolean; - shift: boolean; + eventInit: KeyboardEventInit; } interface SetStorageMessage {