             }
     }
     
-    static func nonCJKSource() -> InputSource? {
-        return inputSources.first(where: { !$0.isCJK })
+    static func nonCJKVSource() -> InputSource? {
+        return inputSources.first(where: { !$0.isCJKV })
     }
 
     static func selectPrevious(shortcut: (Int, UInt64)) {

    let tisInputSource: TISInputSource
    let id: String
    let name: String
    let isCJK: Bool

    var icon: NSImage? = nil


    func select() {
        TISSelectInputSource(tisInputSource)

        if isCJKV, let selectPreviousShortcut = InputSourceManager.getSelectPreviousShortcut() {
            // Workaround for TIS CJKV layout bug:
            // when it's CJKV, select nonCJKV input first and then return
            if let nonCJKV = InputSourceManager.nonCJKVSource() {
                nonCJKV.select()
                InputSourceManager.selectPrevious(shortcut: selectPreviousShortcut)
            }
        }
