InputHandler // Implement Ctrl+Shift+Command+Enter feature.
This commit is contained in:
parent
5e49fe31ed
commit
bf4f3a22fb
|
@ -150,7 +150,7 @@ extension InputHandler {
|
|||
return (input.isCommandHold && input.isControlHold)
|
||||
? (input.isOptionHold
|
||||
? handleCtrlOptionCommandEnter()
|
||||
: handleCtrlCommandEnter())
|
||||
: handleCtrlCommandEnter(isShiftPressed: input.isShiftHold))
|
||||
: handleEnter()
|
||||
case .kSpace: // 倘若沒有在偏好設定內將 Space 空格鍵設為選字窗呼叫用鍵的話………
|
||||
// 空格字符輸入行為處理。
|
||||
|
|
|
@ -296,7 +296,7 @@ extension InputHandler {
|
|||
|
||||
/// Command+Enter 鍵的處理(注音文)。
|
||||
/// - Returns: 將按鍵行為「是否有處理掉」藉由 SessionCtl 回報給 IMK。
|
||||
func handleCtrlCommandEnter() -> Bool {
|
||||
func handleCtrlCommandEnter(isShiftPressed: Bool = false) -> Bool {
|
||||
guard let delegate = delegate else { return false }
|
||||
let state = delegate.state
|
||||
guard state.type == .ofInputting else { return false }
|
||||
|
@ -319,8 +319,7 @@ extension InputHandler {
|
|||
}
|
||||
}
|
||||
|
||||
let isVCED = delegate.clientBundleIdentifier.contains("vChewingPhraseEditor")
|
||||
displayedText = displayedText.replacingOccurrences(of: "\t", with: isVCED ? "-" : " ")
|
||||
displayedText = displayedText.replacingOccurrences(of: "\t", with: isShiftPressed ? "-" : " ")
|
||||
|
||||
delegate.switchState(IMEState.ofCommitting(textToCommit: displayedText))
|
||||
return true
|
||||
|
|
Loading…
Reference in New Issue