From fc7147238eaa220a2bd090c9ac3a841cbc2132b9 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 3 Jul 2023 21:27:05 +0800 Subject: [PATCH] NSEvent // +isSingleCommandBasedLetterHotKey(). --- .../Sources/CocoaExtension/CocoaExtension_NSEvent.swift | 6 ++++++ .../Sources/Shared/Protocols/InputSignalProtocol.swift | 1 + 2 files changed, 7 insertions(+) diff --git a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift index dd578044..1914604b 100644 --- a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift +++ b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift @@ -181,6 +181,12 @@ public extension NSEvent { (65 ... 90).contains(charCode) && modifierFlags == .shift } + // 以 .command 觸發的熱鍵(包括剪貼簿熱鍵)。 + var isSingleCommandBasedLetterHotKey: Bool { + ((65 ... 90).contains(charCode) && modifierFlags == [.shift, .command]) + || ((97 ... 122).contains(charCode) && modifierFlags == .command) + } + // 這裡必須用 KeyCode,這樣才不會受隨 macOS 版本更動的 Apple 動態注音鍵盤排列內容的影響。 // 只是必須得與 ![input isShiftHold] 搭配使用才可以(也就是僅判定 Shift 沒被摁下的情形)。 var isSymbolMenuPhysicalKey: Bool { diff --git a/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift b/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift index 5da0f3f0..e462606e 100644 --- a/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift +++ b/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift @@ -58,5 +58,6 @@ public protocol InputSignalProtocol { var isCursorClockRight: Bool { get } var isCursorClockLeft: Bool { get } var isUpperCaseASCIILetterKey: Bool { get } + var isSingleCommandBasedLetterHotKey: Bool { get } var isSymbolMenuPhysicalKey: Bool { get } }