mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +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); |             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; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user