ctlIME // Change the method of specifying candidate fonts.

This commit is contained in:
ShikiSuen 2022-07-31 23:50:58 +08:00
parent ebcc0a0479
commit c1ee6924d0
1 changed files with 16 additions and 6 deletions

View File

@ -100,12 +100,22 @@ extension ctlInputMethod {
} }
func candidateFont(name: String?, size: CGFloat) -> NSFont { func candidateFont(name: String?, size: CGFloat) -> NSFont {
let currentMUIFont = var finalReturnFont: NSFont =
(keyHandler.inputMode == InputMode.imeModeCHS) {
? "Sarasa Term Slab SC" : "Sarasa Term Slab TC" switch IME.currentInputMode {
var finalReturnFont = case InputMode.imeModeCHS:
NSFont(name: currentMUIFont, size: size) ?? NSFont.systemFont(ofSize: size) return CTFontCreateUIFontForLanguage(.system, size, "zh-Hans" as CFString)
// macOS 11 Big Sur macOS 12 Monterey 使 case InputMode.imeModeCHT:
return (mgrPrefs.shiftJISShinjitaiOutputEnabled || mgrPrefs.chineseConversionEnabled)
? CTFontCreateUIFontForLanguage(.system, size, "ja" as CFString)
: CTFontCreateUIFontForLanguage(.system, size, "zh-Hant" as CFString)
default:
return CTFontCreateUIFontForLanguage(.system, size, nil)
}
}()
?? NSFont.systemFont(ofSize: size)
// macOS 10.11-10.15 macOS 12 Monterey Bug
// macOS 12 Monterey ctlCandidateUniversal
if #available(macOS 12.0, *) { finalReturnFont = NSFont.systemFont(ofSize: size) } if #available(macOS 12.0, *) { finalReturnFont = NSFont.systemFont(ofSize: size) }
if let name = name { if let name = name {
return NSFont(name: name, size: size) ?? finalReturnFont return NSFont(name: name, size: size) ?? finalReturnFont