diff --git a/Source/Modules/ControllerModules/InputState.swift b/Source/Modules/ControllerModules/InputState.swift index d6c81878..afdc0a46 100644 --- a/Source/Modules/ControllerModules/InputState.swift +++ b/Source/Modules/ControllerModules/InputState.swift @@ -156,6 +156,11 @@ class InputState { private var allowedMarkRange = 2...mgrPrefs.maxCandidateLength private(set) var markerIndex: Int = 0 { didSet { markerIndex = max(markerIndex, 0) } } private(set) var markedRange: Range + private var literalMarkedRange: Range { + let lowerBoundLiteral = composingBuffer.charIndexLiteral(from: markedRange.lowerBound) + let upperBoundLiteral = composingBuffer.charIndexLiteral(from: markedRange.upperBound) + return lowerBoundLiteral.. allowedMarkRange.upperBound { + } else if literalMarkedRange.count > allowedMarkRange.upperBound { ctlInputMethod.tooltipController.setColor(state: .denialOverflow) return String( format: NSLocalizedString( @@ -192,9 +197,7 @@ class InputState { ) } - let literalBegin = composingBuffer.charIndexLiteral(from: markedRange.lowerBound) - let literalEnd = composingBuffer.charIndexLiteral(from: markedRange.upperBound) - let selectedReadings = readings[literalBegin..