Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.5.3 GM // Maintenance. #476

Merged
merged 29 commits into from
Jul 30, 2023
Merged

3.5.3 GM // Maintenance. #476

merged 29 commits into from
Jul 30, 2023

Conversation

ShikiSuen
Copy link
Collaborator

@ShikiSuen ShikiSuen commented Jul 30, 2023

  • 修正:田所選字窗 Cocoa 版利用 CoreGraphics 徹底重寫,徹底解決了在 Intel Mac 電腦上的兩個故障:
    1. 修正了因介面渲染低效導致的操作遲鈍故障。該遲鈍故障在 Apple Silicon 機種內極難察覺,但在 Intel Mac 電腦上的使用體驗只能用地獄來形容。
    2. 無論 CPU 種類,之前的 Cococa 版田所選字窗都有記憶體利用過多的故障(雖然不至於洩漏),也在這次重寫更新當中得到了修正。畢竟,之前是給每個候選字詞都初期化一個用 Swift 做過 SubClass 處理的特製 NSTextField,加上 NSStackView,一頁(四行的)畫面平均使用的 NSView 的數量恐超過三十;而現在只需要一個 NSView 採 CoreGraphics 繪製介面。因為沒有用到 CoreAnimation Layer,所以:哪怕在 VMWare 虛擬機內無法正常使用顯示卡驅動加速,也不會有介面繪製上的瑕疵。自然也就允許田所選字窗在所有版本的 macOS 當中的美術風格統一(SwiftUI 版的美術設計則另論)。
    • 註:由於類似的操作遲鈍故障也出現在 SwiftUI 版的田所選字窗內(恐與 CPU 指令優化有關),所以威注音輸入法不建議 Intel Mac 的使用者啟用 SwiftUI 版田所選字窗。
  • 體驗:輸入法偏好設定的「使用者辭典檔案目錄」以及「磁帶檔案目錄」的自訂用「…」按鈕迎來一處新調整:當您摁住 Option 鍵再點這個按鈕的時候,會直接以 Finder 開啟該路徑。
  • 體驗:將主流發行版特有的「修改使用者辭典檔案目錄」以及「磁帶模式」功能下放給威注音輸入法 Aqua 紀念版(v0.5.25)。
    • 技術層面說明:macOS 10.13 之前的版本的系統會在輸入法自身呼叫 NSOpenPanel 的時候令自身與客體應用陷入無限停止響應的狀態。更甚者,此時任何嘗試切換到的其他客體應用也會陷入同樣的狀態。除了強制斷電重新開機以外,就只能藉由遠端 SSH 連到目前的電腦上、以終端命令強行終止輸入法執行緒。因此,威注音輸入法不能對 macOS 10.12 及之前的系統開放對 NSOpenPanel 的存取。這也是這兩個重磅級功能從威注音問世以來便長期缺席於這幾版 macOS 的原因。好在目前終於找到了替代解決方案:讓使用者從 Finder 將輸入法辭典目錄/磁帶檔案直接拽入輸入法偏好設定內的 NSPathControl 路徑控制項當中。
  • 行為:從該版開始,威注音會正確處理 KeyUp 事件,且會刻意忽略一些以 .command 觸發的熱鍵(包括剪貼簿熱鍵)。
  • 行為:從該版開始,就地輪替候選字詞時,輪替順序與選字窗內的候選字詞陳列順序完全一致。
  • 行為:從該版開始,輸入法偏好設定視窗的標題列、以及輸入法關於視窗內都會顯示您當前安裝的威注音輸入法的簽名日期時間戳。這有助於參與 beta 測試的人們弄清楚自己安裝的是哪個版本。
  • 行為:在某些極端個例當中,使用者半衰記憶模組的記憶檔案可能會出現故障、導致輸入法崩潰。從這一版開始,輸入法在偵測到這種崩潰時,不再直接移除這類有問題的記憶檔案,而是直接對這些檔案做更名留檔處理、以便今後的進階偵錯之需。
  • 研發:簡化了對 CFDictionary 的一些處理。
  • 研發:將主流發行版當中的 App Sandbox 檔案路徑書籤管理模組向下移植給 Aqua 紀念版。
  • 研發:優化了對 NSAttributedString 的 BoundingDimension 的計算方法,且縮減了這個計算方法在整個輸入法專案內的使用場合。
  • 辭典:例行語彙資料更新+原神/星穹鐵道語料更新。

@ShikiSuen ShikiSuen added the MAINTENANCE Optimization, etc. label Jul 30, 2023
@ShikiSuen ShikiSuen added this to the 3.5.3 milestone Jul 30, 2023
@ShikiSuen ShikiSuen self-assigned this Jul 30, 2023
@ShikiSuen ShikiSuen merged commit 660d79b into main Jul 30, 2023
1 check passed
@ShikiSuen ShikiSuen deleted the upd/3.5.3 branch July 30, 2023 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MAINTENANCE Optimization, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant