mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	fix(client): delete shortcut key not working
This commit is contained in:
		| @@ -148,13 +148,19 @@ describe("shortcuts", () => { | ||||
|             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" }); | ||||
|             expect(matchesShortcut(event, "F1")).toBeTruthy(); | ||||
|             expect(matchesShortcut(event, "f1")).toBeTruthy(); | ||||
|  | ||||
|             // Function keys with shift | ||||
|             event = createKeyboardEvent({ key: "F1", code: "F1", shiftKey: true }); | ||||
|             expect(matchesShortcut(event, "Shift+F1")).toBeTruthy(); | ||||
|  | ||||
|             // Delete | ||||
|             event = createKeyboardEvent({ key: "Delete", code: "Delete" }); | ||||
|             expect(matchesShortcut(event, "Delete")).toBeTruthy(); | ||||
|         }); | ||||
|  | ||||
|         it("should handle alternative modifier names", () => { | ||||
|   | ||||
| @@ -36,10 +36,18 @@ const keyMap: { [key: string]: string[] } = { | ||||
| }; | ||||
|  | ||||
| // Function keys | ||||
| const functionKeyCodes: string[] = []; | ||||
| 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 | ||||
|  * 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'); | ||||
|  | ||||
|     // Refuse key combinations that don't include modifiers because they interfere with the normal usage of the application. | ||||
|     // Function keys are an exception. | ||||
|     if (!(expectedCtrl || expectedAlt || expectedShift || expectedMeta) && !/f\d+/.test(key)) { | ||||
|     // Some keys such as function keys are an exception. | ||||
|     if (!(expectedCtrl || expectedAlt || expectedShift || expectedMeta) && !KEYCODES_WITH_NO_MODIFIER.has(e.code)) { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user