Pass keyboard events from inner reviewer

This commit is contained in:
Luc Mcgrady 2025-11-15 22:21:19 +00:00
parent 7f29a0d211
commit f09cc303b6
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C
3 changed files with 16 additions and 11 deletions

View file

@ -78,14 +78,21 @@ addEventListener("message", async (e: MessageEvent<InnerReviewerRequest>) => {
});
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);
}
});

View file

@ -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) {

View file

@ -13,9 +13,7 @@ interface UpdateTypedAnswerMessage {
interface KeyPressMessage {
type: "keypress";
key: string;
ctrl: boolean;
shift: boolean;
eventInit: KeyboardEventInit;
}
interface SetStorageMessage {