mirror of
https://github.com/ankitects/anki.git
synced 2026-01-07 02:53:54 -05:00
Pass keyboard events from inner reviewer
This commit is contained in:
parent
7f29a0d211
commit
f09cc303b6
3 changed files with 16 additions and 11 deletions
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@ interface UpdateTypedAnswerMessage {
|
|||
|
||||
interface KeyPressMessage {
|
||||
type: "keypress";
|
||||
key: string;
|
||||
ctrl: boolean;
|
||||
shift: boolean;
|
||||
eventInit: KeyboardEventInit;
|
||||
}
|
||||
|
||||
interface SetStorageMessage {
|
||||
|
|
|
|||
Loading…
Reference in a new issue