SessionCtl // Simplify handle(state).

This commit is contained in:
ShikiSuen 2022-10-11 00:00:58 +08:00
parent 1e8b0af44b
commit 458e7fa613
2 changed files with 10 additions and 14 deletions

View File

@ -40,8 +40,12 @@ extension SessionCtl {
return lineHeightRect
}
public func show(tooltip: String) {
public func showTooltip(_ tooltip: String) {
guard client() != nil else { return }
if tooltip.isEmpty {
tooltipInstance.hide()
return
}
let lineHeightRect = lineHeightRect()
var finalOrigin: NSPoint = lineHeightRect.origin
let delta: Double = lineHeightRect.size.height + 4.0 // bottomOutOfScreenAdjustmentHeight

View File

@ -66,28 +66,20 @@ extension SessionCtl {
case .ofCommitting:
ctlCandidateCurrent.visible = false
tooltipInstance.hide()
let textToCommit = newState.textToCommit
if !textToCommit.isEmpty { commit(text: textToCommit) }
commit(text: newState.textToCommit)
clearInlineDisplay()
//
keyHandler.clear()
case .ofInputting:
ctlCandidateCurrent.visible = false
tooltipInstance.hide()
let textToCommit = newState.textToCommit
if !textToCommit.isEmpty { commit(text: textToCommit) }
commit(text: newState.textToCommit)
setInlineDisplayWithCursor()
if !newState.tooltip.isEmpty {
show(tooltip: newState.tooltip)
}
showTooltip(newState.tooltip)
case .ofMarking:
ctlCandidateCurrent.visible = false
setInlineDisplayWithCursor()
if newState.tooltip.isEmpty {
tooltipInstance.hide()
} else {
show(tooltip: newState.tooltip)
}
showTooltip(newState.tooltip)
case .ofCandidates, .ofAssociates, .ofSymbolTable:
tooltipInstance.hide()
setInlineDisplayWithCursor()
@ -142,7 +134,7 @@ extension SessionCtl {
///
/// IMK commitComposition
private func commit(text: String) {
guard let client = client() else { return }
guard let client = client(), !text.isEmpty else { return }
let buffer = ChineseConverter.kanjiConversionIfRequired(text)
if buffer.isEmpty {
return