2.6.2 // Emergent Bug Fix. Merge PR #138 from upd/2.6.2

This commit is contained in:
ShikiSuen 2022-09-15 15:22:36 +08:00 committed by GitHub
commit f4fd598a89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 112 additions and 103 deletions

1
.gitignore vendored
View File

@ -175,6 +175,7 @@ FakesAssemblies/
Generated\ Files/ Generated\ Files/
Generated_Code/ Generated_Code/
Icon Icon
Installer/PKGRoot/
install-sh install-sh
ipch/ ipch/
Makefile.in Makefile.in

View File

@ -3,18 +3,22 @@
TARGET='vChewing' TARGET='vChewing'
login_user=$(/usr/bin/stat -f%Su /dev/console) login_user=$(/usr/bin/stat -f%Su /dev/console)
# First, copy the wrongfully installed contents to the right location: base_ver=12.0
ver=$(sw_vers | grep ProductVersion | cut -d':' -f2 | tr -d ' ')
if [ $(echo -e $base_ver"\n"$ver | sort -V | tail -1) == "$base_ver" ]
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/Input\ Methods/"${TARGET}".app /Users/"${login_user}"/Library/Input\ Methods/ || true
cp -r /Library/Keyboard\ Layouts/"${TARGET}"* /Users/"${login_user}"/Library/Keyboard\ Layouts/ || true cp -r /Library/Keyboard\ Layouts/"${TARGET}"* /Users/"${login_user}"/Library/Keyboard\ Layouts/ || true
# Clean the wrongfully installed contents:
chown "${login_user}" /Users/"${login_user}"/Library/Input\ Methods/"${TARGET}".app || true chown "${login_user}" /Users/"${login_user}"/Library/Input\ Methods/"${TARGET}".app || true
chown "${login_user}" /Users/"${login_user}"/Library/Keyboard\ Layouts/"${TARGET}"* || true chown "${login_user}" /Users/"${login_user}"/Library/Keyboard\ Layouts/"${TARGET}"* || true
sleep 1 sleep 1
# Second, clean the wrongfully installed contents:
rm -rf /Library/Input\ Methods/"${TARGET}".app || true rm -rf /Library/Input\ Methods/"${TARGET}".app || true
rm -rf /Library/Keyboard\ Layouts/"${TARGET}"* || true rm -rf /Library/Keyboard\ Layouts/"${TARGET}"* || true
sleep 1 sleep 1
fi
# Finally, register the input method: # Finally, register the input method:
/Users/"${login_user}"/Library/Input\ Methods/"${TARGET}".app/Contents/MacOS/"${TARGET}" install --all || true /Users/"${login_user}"/Library/Input\ Methods/"${TARGET}".app/Contents/MacOS/"${TARGET}" install --all || true

@ -1 +1 @@
Subproject commit c5b2fe7f08971cf2719f553de9de967097bd56b6 Subproject commit e3277eaff3592b356f76f50362de56bdf6ed927c

View File

@ -28,7 +28,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
private var ctlClientListMgrInstance: ctlClientListMgr? private var ctlClientListMgrInstance: ctlClientListMgr?
private var ctlPrefWindowInstance: ctlPrefWindow? private var ctlPrefWindowInstance: ctlPrefWindow?
private var ctlAboutWindowInstance: ctlAboutWindow? // New About Window private var ctlAboutWindowInstance: ctlAboutWindow? // New About Window
public lazy var folderMonitor = FolderMonitor( public var folderMonitor = FolderMonitor(
url: URL(fileURLWithPath: mgrLangModel.dataFolderPath(isDefaultFolder: false)) url: URL(fileURLWithPath: mgrLangModel.dataFolderPath(isDefaultFolder: false))
) )
private var currentAlertType: String = "" private var currentAlertType: String = ""
@ -54,12 +54,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()) { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()) {
IME.initLangModels(userOnly: false) IME.initLangModels(userOnly: false)
} self.folderMonitor.folderDidChange = { [weak self] in
folderMonitor.folderDidChange = { [weak self] in
self?.reloadOnFolderChangeHappens() self?.reloadOnFolderChangeHappens()
} }
folderMonitor.startMonitoring() if mgrLangModel.userDataFolderExists {
self.folderMonitor.startMonitoring()
}
}
mgrPrefs.fixOddPreferences() mgrPrefs.fixOddPreferences()
mgrPrefs.setMissingDefaults() mgrPrefs.setMissingDefaults()
@ -78,8 +79,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
folderMonitor.folderDidChange = { [weak self] in folderMonitor.folderDidChange = { [weak self] in
self?.reloadOnFolderChangeHappens() self?.reloadOnFolderChangeHappens()
} }
if mgrLangModel.userDataFolderExists {
folderMonitor.startMonitoring() folderMonitor.startMonitoring()
} }
}
func showClientListMgr() { func showClientListMgr() {
if ctlClientListMgrInstance == nil { if ctlClientListMgrInstance == nil {

View File

@ -231,10 +231,9 @@ class ctlInputMethod: IMKInputController {
if ShiftKeyUpChecker.check(event), !mgrPrefs.disableShiftTogglingAlphanumericalMode { if ShiftKeyUpChecker.check(event), !mgrPrefs.disableShiftTogglingAlphanumericalMode {
if !shouldUseShiftToggleHandle || (!rencentKeyHandledByKeyHandlerEtc && shouldUseShiftToggleHandle) { if !shouldUseShiftToggleHandle || (!rencentKeyHandledByKeyHandlerEtc && shouldUseShiftToggleHandle) {
NotifierController.notify( NotifierController.notify(
message: NSLocalizedString("Alphanumerical Mode", comment: "") + "\n" message: toggleASCIIMode()
+ (toggleASCIIMode() ? NSLocalizedString("Alphanumerical Input Mode", comment: "")
? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("Chinese Input Mode", comment: "")
: NSLocalizedString("NotificationSwitchOFF", comment: ""))
) )
} }
if shouldUseShiftToggleHandle { if shouldUseShiftToggleHandle {

View File

@ -161,7 +161,7 @@ public class ctlCandidate: NSWindowController, ctlCandidateProtocol {
var adjustedPoint = windowTopLeftPoint var adjustedPoint = windowTopLeftPoint
var delta = heightDelta var delta = heightDelta
var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast
for frame in NSScreen.screens.map(\.visibleFrame).filter({ !$0.contains(windowTopLeftPoint) }) { for frame in NSScreen.screens.map(\.visibleFrame).filter({ $0.contains(windowTopLeftPoint) }) {
screenFrame = frame screenFrame = frame
break break
} }

View File

@ -163,40 +163,23 @@ public class ctlCandidateIMK: IMKCandidates, ctlCandidateProtocol {
} }
} }
func doSet(windowTopLeftPoint: NSPoint, bottomOutOfScreenAdjustmentHeight height: CGFloat) { func doSet(windowTopLeftPoint: NSPoint, bottomOutOfScreenAdjustmentHeight heightDelta: CGFloat) {
var adjustedPoint = windowTopLeftPoint var adjustedPoint = windowTopLeftPoint
var adjustedHeight = height let windowSize = candidateFrame().size
var delta = heightDelta
var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast
for screen in NSScreen.screens { for frame in NSScreen.screens.map(\.visibleFrame).filter({ $0.contains(windowTopLeftPoint) }) {
let frame = screen.visibleFrame
if windowTopLeftPoint.x >= frame.minX, windowTopLeftPoint.x <= frame.maxX,
windowTopLeftPoint.y >= frame.minY, windowTopLeftPoint.y <= frame.maxY
{
screenFrame = frame screenFrame = frame
break break
} }
if delta > screenFrame.size.height / 2.0 { delta = 0.0 }
if adjustedPoint.y < screenFrame.minY + windowSize.height {
adjustedPoint.y = windowTopLeftPoint.y + windowSize.height + delta
} }
adjustedPoint.y = min(adjustedPoint.y, screenFrame.maxY - 1.0)
if adjustedHeight > screenFrame.size.height / 2.0 { adjustedHeight = 0.0 } adjustedPoint.x = min(max(adjustedPoint.x, screenFrame.minX), screenFrame.maxX - windowSize.width - 1.0)
let windowSize = candidateFrame().size
// bottom beneath the screen?
if adjustedPoint.y - windowSize.height < screenFrame.minY {
adjustedPoint.y = windowTopLeftPoint.y + adjustedHeight + windowSize.height
}
// top over the screen?
if adjustedPoint.y >= screenFrame.maxY { adjustedPoint.y = screenFrame.maxY - 1.0 }
// right
if adjustedPoint.x + windowSize.width >= screenFrame.maxX {
adjustedPoint.x = screenFrame.maxX - windowSize.width
}
// left
if adjustedPoint.x < screenFrame.minX { adjustedPoint.x = screenFrame.minX }
setCandidateFrameTopLeft(adjustedPoint) setCandidateFrameTopLeft(adjustedPoint)
} }

View File

@ -146,7 +146,7 @@ public class ctlPopupCompositionBuffer: NSWindowController {
var adjustedPoint = windowOrigin var adjustedPoint = windowOrigin
var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast
for frame in NSScreen.screens.map(\.visibleFrame).filter({ !$0.contains(windowOrigin) }) { for frame in NSScreen.screens.map(\.visibleFrame).filter({ $0.contains(windowOrigin) }) {
screenFrame = frame screenFrame = frame
break break
} }

View File

@ -130,7 +130,7 @@ public class ctlTooltip: NSWindowController {
var adjustedPoint = windowTopLeftPoint var adjustedPoint = windowTopLeftPoint
var delta = heightDelta var delta = heightDelta
var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast var screenFrame = NSScreen.main?.visibleFrame ?? NSRect.seniorTheBeast
for frame in NSScreen.screens.map(\.visibleFrame).filter({ !$0.contains(windowTopLeftPoint) }) { for frame in NSScreen.screens.map(\.visibleFrame).filter({ $0.contains(windowTopLeftPoint) }) {
screenFrame = frame screenFrame = frame
break break
} }

View File

@ -1,4 +1,6 @@
"vChewing" = "vChewing"; "vChewing" = "vChewing";
"Alphanumerical Input Mode" = "Alphanumerical Input Mode";
"Chinese Input Mode" = "Chinese Input Mode";
"Please enter the client app bundle identifier(s) you want to register." = "Please enter the client app bundle identifier(s) you want to register."; "Please enter the client app bundle identifier(s) you want to register." = "Please enter the client app bundle identifier(s) you want to register.";
"One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed."; "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed.";
"Just Select" = "Just Select"; "Just Select" = "Just Select";
@ -68,7 +70,6 @@
"zh-Hans" = "Simplified Chinese"; "zh-Hans" = "Simplified Chinese";
"zh-Hant" = "Traditional Chinese"; "zh-Hant" = "Traditional Chinese";
"ja" = "Japanese"; "ja" = "Japanese";
"Alphanumerical Input Mode" = "Alphanumerical Input Mode";
"Apple Zhuyin Bopomofo (Dachen)" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Bopomofo (Dachen)" = "Apple Zhuyin Bopomofo (Standard)";
"Apple Zhuyin Eten (Traditional)" = "Apple Zhuyin Eten (Traditional)"; "Apple Zhuyin Eten (Traditional)" = "Apple Zhuyin Eten (Traditional)";
"Symbol & Emoji Input" = "Symbol & Emoji Input"; "Symbol & Emoji Input" = "Symbol & Emoji Input";

View File

@ -90,13 +90,15 @@
</array> </array>
</dict> </dict>
<key>InputMethodConnectionName</key> <key>InputMethodConnectionName</key>
<string>org.atelierInmu.inputmethod.vChewing_Connection</string> <string>org_atelierInmu_inputmethod_vChewing_Connection</string>
<key>InputMethodServerControllerClass</key> <key>InputMethodServerControllerClass</key>
<string>ctlInputMethod</string> <string>ctlInputMethod</string>
<key>InputMethodServerDelegateClass</key> <key>InputMethodServerDelegateClass</key>
<string>ctlInputMethod</string> <string>ctlInputMethod</string>
<key>InputMethodServerPreferencesWindowControllerClass</key> <key>InputMethodServerPreferencesWindowControllerClass</key>
<string>ctlPrefWindow</string> <string>ctlPrefWindow</string>
<key>InputMethodSessionController</key>
<string>ctlInputMethod</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string> <string>public.app-category.utilities</string>
<key>LSHasLocalizedDisplayName</key> <key>LSHasLocalizedDisplayName</key>
@ -131,9 +133,10 @@
<array> <array>
<string>Hans</string> <string>Hans</string>
<string>Hant</string> <string>Hant</string>
<string>Han</string> <string>Hani</string>
<string>Hanb</string>
</array> </array>
<key>tsInputMethodIconFileKey</key> <key>tsInputMethodIconFileKey</key>
<string>Bopomofo.tiff</string> <string>MenuIcon-TCVIM.png</string>
</dict> </dict>
</plist> </plist>

View File

@ -1,4 +1,6 @@
"vChewing" = "vChewing"; "vChewing" = "vChewing";
"Alphanumerical Input Mode" = "Alphanumerical Input Mode";
"Chinese Input Mode" = "Chinese Input Mode";
"Please enter the client app bundle identifier(s) you want to register." = "Please enter the client app bundle identifier(s) you want to register."; "Please enter the client app bundle identifier(s) you want to register." = "Please enter the client app bundle identifier(s) you want to register.";
"One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed."; "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed.";
"Just Select" = "Just Select"; "Just Select" = "Just Select";
@ -68,7 +70,6 @@
"zh-Hans" = "Simplified Chinese"; "zh-Hans" = "Simplified Chinese";
"zh-Hant" = "Traditional Chinese"; "zh-Hant" = "Traditional Chinese";
"ja" = "Japanese"; "ja" = "Japanese";
"Alphanumerical Input Mode" = "Alphanumerical Input Mode";
"Apple Zhuyin Bopomofo (Dachen)" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Bopomofo (Dachen)" = "Apple Zhuyin Bopomofo (Standard)";
"Apple Zhuyin Eten (Traditional)" = "Apple Zhuyin Eten (Traditional)"; "Apple Zhuyin Eten (Traditional)" = "Apple Zhuyin Eten (Traditional)";
"Symbol & Emoji Input" = "Symbol & Emoji Input"; "Symbol & Emoji Input" = "Symbol & Emoji Input";

View File

@ -1,4 +1,6 @@
"vChewing" = "威注音入力アプリ"; "vChewing" = "威注音入力アプリ";
"Alphanumerical Input Mode" = "英數入力モード";
"Chinese Input Mode" = "漢語入力モード";
"Please enter the client app bundle identifier(s) you want to register." = "登録したい客体アプリの唯一識別子Bundle Identifierをご入力ください。"; "Please enter the client app bundle identifier(s) you want to register." = "登録したい客体アプリの唯一識別子Bundle Identifierをご入力ください。";
"One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "毎行はつ記録とみなす。Option+Enter キーで改行。\n空白の記録値は無視される。"; "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "毎行はつ記録とみなす。Option+Enter キーで改行。\n空白の記録値は無視される。";
"Just Select" = "直接に選ぶ"; "Just Select" = "直接に選ぶ";
@ -68,7 +70,6 @@
"zh-Hans" = "簡體中国語"; "zh-Hans" = "簡體中国語";
"zh-Hant" = "繁體中国語"; "zh-Hant" = "繁體中国語";
"ja" = "和語"; "ja" = "和語";
"Alphanumerical Input Mode" = "英数入力モード";
"Apple Zhuyin Bopomofo (Dachen)" = "Apple 注音ボポモフォ(大千標準)"; "Apple Zhuyin Bopomofo (Dachen)" = "Apple 注音ボポモフォ(大千標準)";
"Apple Zhuyin Eten (Traditional)" = "Apple 注音ボポモフォ(倚天伝統)"; "Apple Zhuyin Eten (Traditional)" = "Apple 注音ボポモフォ(倚天伝統)";
"Symbol & Emoji Input" = "符号&絵文字入力"; "Symbol & Emoji Input" = "符号&絵文字入力";

View File

@ -1,4 +1,6 @@
"vChewing" = "威注音输入法"; "vChewing" = "威注音输入法";
"Alphanumerical Input Mode" = "英数输入模式";
"Chinese Input Mode" = "中文输入模式";
"Please enter the client app bundle identifier(s) you want to register." = "请键入您要登记的客体应用的唯一标帜Bundle Identifier。"; "Please enter the client app bundle identifier(s) you want to register." = "请键入您要登记的客体应用的唯一标帜Bundle Identifier。";
"One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "每行一笔记录,用 Option+Enter 换行。\n空白值会被无视。"; "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "每行一笔记录,用 Option+Enter 换行。\n空白值会被无视。";
"Just Select" = "直接选取"; "Just Select" = "直接选取";
@ -68,7 +70,6 @@
"zh-Hans" = "简体中文"; "zh-Hans" = "简体中文";
"zh-Hant" = "繁体中文"; "zh-Hant" = "繁体中文";
"ja" = "和文"; "ja" = "和文";
"Alphanumerical Input Mode" = "原生英数输入模式";
"Apple Zhuyin Bopomofo (Dachen)" = "Apple 标准注音键盘布局 (大千)"; "Apple Zhuyin Bopomofo (Dachen)" = "Apple 标准注音键盘布局 (大千)";
"Apple Zhuyin Eten (Traditional)" = "Apple 倚天注音键盘布局 (传统)"; "Apple Zhuyin Eten (Traditional)" = "Apple 倚天注音键盘布局 (传统)";
"Symbol & Emoji Input" = "符号&绘文字输入"; "Symbol & Emoji Input" = "符号&绘文字输入";

View File

@ -1,4 +1,6 @@
"vChewing" = "威注音輸入法"; "vChewing" = "威注音輸入法";
"Alphanumerical Input Mode" = "英數輸入模式";
"Chinese Input Mode" = "中文輸入模式";
"Please enter the client app bundle identifier(s) you want to register." = "請鍵入您要登記的客體應用的唯一標幟Bundle Identifier。"; "Please enter the client app bundle identifier(s) you want to register." = "請鍵入您要登記的客體應用的唯一標幟Bundle Identifier。";
"One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "每行一筆記錄,用 Option+Enter 換行。\n空白值會被無視。"; "One record per line. Use Option+Enter to break lines.\nBlank lines will be dismissed." = "每行一筆記錄,用 Option+Enter 換行。\n空白值會被無視。";
"Just Select" = "直接選取"; "Just Select" = "直接選取";
@ -68,7 +70,6 @@
"zh-Hans" = "簡體中文"; "zh-Hans" = "簡體中文";
"zh-Hant" = "繁體中文"; "zh-Hant" = "繁體中文";
"ja" = "和文"; "ja" = "和文";
"Alphanumerical Input Mode" = "原生英數輸入模式";
"Apple Zhuyin Bopomofo (Dachen)" = "Apple 標準注音鍵盤佈局 (大千)"; "Apple Zhuyin Bopomofo (Dachen)" = "Apple 標準注音鍵盤佈局 (大千)";
"Apple Zhuyin Eten (Traditional)" = "Apple 倚天注音鍵盤佈局 (傳統)"; "Apple Zhuyin Eten (Traditional)" = "Apple 倚天注音鍵盤佈局 (傳統)";
"Symbol & Emoji Input" = "符號&繪文字輸入"; "Symbol & Emoji Input" = "符號&繪文字輸入";

View File

@ -3,9 +3,9 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>2.6.1</string> <string>2.6.2</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2610</string> <string>2620</string>
<key>UpdateInfoEndpoint</key> <key>UpdateInfoEndpoint</key>
<string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string> <string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string>
<key>UpdateInfoSite</key> <key>UpdateInfoSite</key>

View File

@ -726,7 +726,7 @@
<key>USE_HFS+_COMPRESSION</key> <key>USE_HFS+_COMPRESSION</key>
<false/> <false/>
<key>VERSION</key> <key>VERSION</key>
<string>2.6.1</string> <string>2.6.2</string>
</dict> </dict>
<key>TYPE</key> <key>TYPE</key>
<integer>0</integer> <integer>0</integer>

View File

@ -227,7 +227,6 @@
5B20430628BEE30900BFC6FD /* BookmarkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkManager.swift; sourceTree = "<group>"; }; 5B20430628BEE30900BFC6FD /* BookmarkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkManager.swift; sourceTree = "<group>"; };
5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewing.entitlements; sourceTree = "<group>"; }; 5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewing.entitlements; sourceTree = "<group>"; };
5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewingPhraseEditor.entitlements; sourceTree = "<group>"; }; 5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewingPhraseEditor.entitlements; sourceTree = "<group>"; };
5B20430D28BF279900BFC6FD /* vChewingInstaller.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewingInstaller.entitlements; sourceTree = "<group>"; };
5B21176B287539BB000443A9 /* ctlInputMethod_HandleStates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleStates.swift; sourceTree = "<group>"; }; 5B21176B287539BB000443A9 /* ctlInputMethod_HandleStates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleStates.swift; sourceTree = "<group>"; };
5B21176D28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleDisplay.swift; sourceTree = "<group>"; }; 5B21176D28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleDisplay.swift; sourceTree = "<group>"; };
5B21176F28753B9D000443A9 /* ctlInputMethod_Delegates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_Delegates.swift; sourceTree = "<group>"; }; 5B21176F28753B9D000443A9 /* ctlInputMethod_Delegates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_Delegates.swift; sourceTree = "<group>"; };
@ -476,6 +475,13 @@
path = SubLMs; path = SubLMs;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
5B44B97C28D2F283004508BF /* PKGRoot */ = {
isa = PBXGroup;
children = (
);
path = PKGRoot;
sourceTree = "<group>";
};
5B5F8AEC28C86AB3007C11F1 /* NSAttributedTextView */ = { 5B5F8AEC28C86AB3007C11F1 /* NSAttributedTextView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -815,7 +821,6 @@
6A0D4E9215FC0CFA00ABF4B3 = { 6A0D4E9215FC0CFA00ABF4B3 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5B20430D28BF279900BFC6FD /* vChewingInstaller.entitlements */,
5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */, 5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */,
5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */, 5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */,
5BBD627827B6C4D900271480 /* Update-Info.plist */, 5BBD627827B6C4D900271480 /* Update-Info.plist */,
@ -899,6 +904,7 @@
6ACA41E715FC1D9000935EF6 /* Installer */ = { 6ACA41E715FC1D9000935EF6 /* Installer */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5B44B97C28D2F283004508BF /* PKGRoot */,
6A225A1E23679F2600F685C6 /* NotarizedArchives */, 6A225A1E23679F2600F685C6 /* NotarizedArchives */,
5BBBB77827AEDB330023B93A /* Resources */, 5BBBB77827AEDB330023B93A /* Resources */,
D4F0BBE0279AF8B30071253C /* AppDelegate.swift */, D4F0BBE0279AF8B30071253C /* AppDelegate.swift */,
@ -961,9 +967,10 @@
buildPhases = ( buildPhases = (
6A0D4E9E15FC0D2D00ABF4B3 /* Sources */, 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */,
6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */, 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */,
5B9A5A00285184BB001FFCAF /* ShellScript */, 5B9A5A00285184BB001FFCAF /* Run Script (Build Dictionary Data) */,
6A0D4EA015FC0D2D00ABF4B3 /* Resources */, 6A0D4EA015FC0D2D00ABF4B3 /* Resources */,
5BDC5CBE27C28E8B00E1CCE2 /* Embed Foundation Extensions */, 5BDC5CBE27C28E8B00E1CCE2 /* Embed Foundation Extensions */,
5B6F882E28D2F49F004EF52F /* Run Script (Build PKG Installer) */,
); );
buildRules = ( buildRules = (
); );
@ -1129,7 +1136,26 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
5B9A5A00285184BB001FFCAF /* ShellScript */ = { 5B6F882E28D2F49F004EF52F /* Run Script (Build PKG Installer) */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Run Script (Build PKG Installer)";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/zsh;
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n# cd \"${SRCROOT}/\"\n# mkdir -p \"${SRCROOT}/Installer/PKGRoot/Library/Input Methods/\"\n# mkdir -p \"${SRCROOT}/Installer/PKGRoot/Library/Keyboard Layouts/\"\n# cp -a \"${BUILD_DIR}/Release/vChewing.app\" \"${SRCROOT}/Installer/PKGRoot/Library/Input Methods/\"\n# cp -a ${SRCROOT}/KeyboardExtension/vChewingKeyLayout.bundle \"${SRCROOT}/Installer/PKGRoot/Library/Keyboard Layouts/\"\n# cp -a ${SRCROOT}/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing*.keylayout \"${SRCROOT}/Installer/PKGRoot/Library/Keyboard Layouts/\"\n";
};
5B9A5A00285184BB001FFCAF /* Run Script (Build Dictionary Data) */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -1155,6 +1181,7 @@
"$(SRCROOT)/Source/Data/components/common/data-zhuyinwen.txt", "$(SRCROOT)/Source/Data/components/common/data-zhuyinwen.txt",
"$(SRCROOT)/Source/Data/components/common/phone-header.txt", "$(SRCROOT)/Source/Data/components/common/phone-header.txt",
); );
name = "Run Script (Build Dictionary Data)";
outputFileListPaths = ( outputFileListPaths = (
); );
outputPaths = ( outputPaths = (
@ -1483,7 +1510,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO; GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
@ -1493,7 +1520,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests;
@ -1522,13 +1549,13 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests;
@ -1560,7 +1587,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
@ -1582,7 +1609,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1612,7 +1639,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
@ -1630,7 +1657,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1746,7 +1773,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
@ -1775,7 +1802,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -1805,7 +1832,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
@ -1828,7 +1855,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@ -1848,14 +1875,13 @@
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES; CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = vChewingInstaller.entitlements;
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = NO;
GCC_C_LANGUAGE_STANDARD = gnu99; GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO; GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES;
@ -1873,7 +1899,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingInstaller; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingInstaller;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -1892,14 +1918,13 @@
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES; CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = vChewingInstaller.entitlements;
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2610; CURRENT_PROJECT_VERSION = 2620;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = NO;
GCC_C_LANGUAGE_STANDARD = gnu99; GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_TREAT_WARNINGS_AS_ERRORS = YES;
@ -1911,7 +1936,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 2.6.1; MARKETING_VERSION = 2.6.2;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingInstaller; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingInstaller;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
<key>com.apple.security.temporary-exception.files.home-relative-path.read-write</key>
<array>
<string>/Library/Input Methods/</string>
</array>
<key>com.apple.security.temporary-exception.shared-preference.read-write</key>
<string>org.atelierInmu.vChewing.vChewingInstaller</string>
</dict>
</plist>