diff --git a/Installer/pkgPostInstall.sh b/Installer/pkgPostInstall.sh
index c3c98cfa..7a3b7e38 100644
--- a/Installer/pkgPostInstall.sh
+++ b/Installer/pkgPostInstall.sh
@@ -4,7 +4,7 @@ TARGET='vChewing'
login_user=$(/usr/bin/stat -f%Su /dev/console)
OS_Version=$(sw_vers -productVersion)
-if [[ ${OS_Version} < 12.0.0 ]]; then
+##### if [[ ${OS_Version} < 12.0.0 ]]; then
# Copy the wrongfully installed contents to the right location:
cp -r /Library/Input\ Methods/"${TARGET}".app /Users/"${login_user}"/Library/Input\ Methods/ || true
cp -r /Library/Keyboard\ Layouts/"${TARGET}"* /Users/"${login_user}"/Library/Keyboard\ Layouts/ || true
@@ -16,7 +16,7 @@ if [[ ${OS_Version} < 12.0.0 ]]; then
rm -rf /Library/Input\ Methods/"${TARGET}".app || true
rm -rf /Library/Keyboard\ Layouts/"${TARGET}"* || true
sleep 1
-fi
+##### fi
# Finally, register the input method:
/Users/"${login_user}"/Library/Input\ Methods/"${TARGET}".app/Contents/MacOS/"${TARGET}" install --all || true
diff --git a/Source/Modules/ctlInputMethod_Core.swift b/Source/Modules/ctlInputMethod_Core.swift
index 478fb51e..f6865e35 100644
--- a/Source/Modules/ctlInputMethod_Core.swift
+++ b/Source/Modules/ctlInputMethod_Core.swift
@@ -39,7 +39,13 @@ class ctlInputMethod: IMKInputController {
// MARK: -
/// 當前這個 ctlInputMethod 副本是否處於英數輸入模式。
- var isASCIIMode = false { didSet { setKeyLayout() } }
+ var isASCIIMode = false {
+ didSet {
+ resetKeyHandler()
+ setKeyLayout()
+ }
+ }
+
/// 按鍵調度模組的副本。
var keyHandler = KeyHandler(lm: LMMgr.currentLM(), uom: LMMgr.currentUOM(), pref: PrefMgr.shared)
/// 用以記錄當前輸入法狀態的變數。
@@ -53,13 +59,6 @@ class ctlInputMethod: IMKInputController {
/// - Remark: 警告:該工具必須為 Struct 且全專案只能有一個唯一初期化副本。否則會在動 CapsLock 的時候誤以為是在摁 Shift。
static var theShiftKeyDetector = ShiftKeyUpChecker(useLShift: PrefMgr.shared.togglingAlphanumericalModeWithLShift)
- /// 切換當前 ctlInputMethod 副本的英數輸入模式開關。
- func toggleASCIIMode() -> Bool {
- resetKeyHandler()
- isASCIIMode.toggle()
- return isASCIIMode
- }
-
/// `handle(event:)` 會利用這個參數判定某次 Shift 按鍵是否用來切換中英文輸入。
var rencentKeyHandledByKeyHandlerEtc = false
@@ -274,7 +273,7 @@ class ctlInputMethod: IMKInputController {
if Self.theShiftKeyDetector.check(event), !PrefMgr.shared.disableShiftTogglingAlphanumericalMode {
if !shouldUseShiftToggleHandle || (!rencentKeyHandledByKeyHandlerEtc && shouldUseShiftToggleHandle) {
NotifierController.notify(
- message: toggleASCIIMode()
+ message: isASCIIMode.toggled()
? NSLocalizedString("Alphanumerical Input Mode", comment: "")
: NSLocalizedString("Chinese Input Mode", comment: "")
)
@@ -288,6 +287,9 @@ class ctlInputMethod: IMKInputController {
// MARK: 針對客體的具體處理
+ // 不再讓威注音處理由 Shift 切換到的英文模式的按鍵輸入。
+ if isASCIIMode { return false }
+
/// 這裡仍舊需要判斷 flags。之前使輸入法狀態卡住無法敲漢字的問題已在 KeyHandler 內修復。
/// 這裡不判斷 flags 的話,用方向鍵前後定位光標之後,再次試圖觸發組字區時、反而會在首次按鍵時失敗。
/// 同時注意:必須在 event.type == .flagsChanged 結尾插入 return false,
diff --git a/Update-Info.plist b/Update-Info.plist
index cb49c438..da32acad 100644
--- a/Update-Info.plist
+++ b/Update-Info.plist
@@ -5,7 +5,7 @@
CFBundleShortVersionString
2.7.0
CFBundleVersion
- 2701
+ 2702
UpdateInfoEndpoint
https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist
UpdateInfoSite
diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj
index 26a4b742..d3b4fb13 100644
--- a/vChewing.xcodeproj/project.pbxproj
+++ b/vChewing.xcodeproj/project.pbxproj
@@ -1280,7 +1280,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -1320,7 +1320,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -1359,7 +1359,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -1411,7 +1411,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_NS_ASSERTIONS = NO;
@@ -1545,7 +1545,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@@ -1605,7 +1605,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@@ -1651,7 +1651,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = NO;
@@ -1695,7 +1695,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 2701;
+ CURRENT_PROJECT_VERSION = 2702;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = NO;