mirror of
https://github.com/zadam/trilium.git
synced 2025-10-20 23:29:02 +02:00
fix(client): delete shortcut key not working
This commit is contained in:
parent
9a2440942b
commit
b450a4faa0
@ -148,13 +148,19 @@ describe("shortcuts", () => {
|
|||||||
expect(matchesShortcut(event, "a")).toBe(false);
|
expect(matchesShortcut(event, "a")).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should match function keys even with no modifiers", () => {
|
it("should match some keys even with no modifiers", () => {
|
||||||
|
// Bare function keys
|
||||||
let event = createKeyboardEvent({ key: "F1", code: "F1" });
|
let event = createKeyboardEvent({ key: "F1", code: "F1" });
|
||||||
expect(matchesShortcut(event, "F1")).toBeTruthy();
|
expect(matchesShortcut(event, "F1")).toBeTruthy();
|
||||||
expect(matchesShortcut(event, "f1")).toBeTruthy();
|
expect(matchesShortcut(event, "f1")).toBeTruthy();
|
||||||
|
|
||||||
|
// Function keys with shift
|
||||||
event = createKeyboardEvent({ key: "F1", code: "F1", shiftKey: true });
|
event = createKeyboardEvent({ key: "F1", code: "F1", shiftKey: true });
|
||||||
expect(matchesShortcut(event, "Shift+F1")).toBeTruthy();
|
expect(matchesShortcut(event, "Shift+F1")).toBeTruthy();
|
||||||
|
|
||||||
|
// Delete
|
||||||
|
event = createKeyboardEvent({ key: "Delete", code: "Delete" });
|
||||||
|
expect(matchesShortcut(event, "Delete")).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should handle alternative modifier names", () => {
|
it("should handle alternative modifier names", () => {
|
||||||
|
@ -36,10 +36,18 @@ const keyMap: { [key: string]: string[] } = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Function keys
|
// Function keys
|
||||||
|
const functionKeyCodes: string[] = [];
|
||||||
for (let i = 1; i <= 19; i++) {
|
for (let i = 1; i <= 19; i++) {
|
||||||
keyMap[`f${i}`] = [`F${i}`];
|
const keyCode = `F${i}`;
|
||||||
|
functionKeyCodes.push(keyCode);
|
||||||
|
keyMap[`f${i}`] = [ keyCode ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const KEYCODES_WITH_NO_MODIFIER = new Set([
|
||||||
|
"Delete",
|
||||||
|
...functionKeyCodes
|
||||||
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if IME (Input Method Editor) is composing
|
* Check if IME (Input Method Editor) is composing
|
||||||
* This is used to prevent keyboard shortcuts from firing during IME composition
|
* This is used to prevent keyboard shortcuts from firing during IME composition
|
||||||
@ -163,8 +171,8 @@ export function matchesShortcut(e: KeyboardEvent, shortcut: string): boolean {
|
|||||||
const expectedMeta = modifiers.includes('meta') || modifiers.includes('cmd') || modifiers.includes('command');
|
const expectedMeta = modifiers.includes('meta') || modifiers.includes('cmd') || modifiers.includes('command');
|
||||||
|
|
||||||
// Refuse key combinations that don't include modifiers because they interfere with the normal usage of the application.
|
// Refuse key combinations that don't include modifiers because they interfere with the normal usage of the application.
|
||||||
// Function keys are an exception.
|
// Some keys such as function keys are an exception.
|
||||||
if (!(expectedCtrl || expectedAlt || expectedShift || expectedMeta) && !/f\d+/.test(key)) {
|
if (!(expectedCtrl || expectedAlt || expectedShift || expectedMeta) && !KEYCODES_WITH_NO_MODIFIER.has(e.code)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user