chewing / libchewing

libchewing - The intelligent phonetic input method library
https://chewing.im/
GNU Lesser General Public License v2.1
360 stars 90 forks source link

Rust 版程式針對 KB_DVORAK_HSU 的處理行為不符預期 #578

Closed hiroshiyui closed 4 months ago

hiroshiyui commented 4 months ago

Describe the bug

用 libchewing v0.8.2 (C build) 時,測試 all pass,且將鍵盤設為「許氏注音、Dvorak 排列」(KB_DVORAK_HSU) 時可正常使用。

用 libchewing v0.8.3 (Rust build, commit id 6db4da3da4262392d7eb28bd163ecdbe8b45fd7e) 時,「許氏注音、Dvorak 排列」相關測試失敗,操作無論螢幕鍵盤、實體鍵盤時,按鍵對應都如 QWERTY 輸出,而不是像前者以 Dvorak 排列方式輸出。

例:QWERTY 下的 P 鍵映射到 Dvorak 的 L 鍵,測試案例裡模擬按兩次此鍵應該要輸出 ㄌㄥ 實際卻輸出 ㄆ

註:參考實作為樸實注音鍵盤

To Reproduce Steps to reproduce the behavior:

  1. 使用 libchewing v0.8.2 (C build) 為後端的樸實注音鍵盤 1.9.51 版
  2. 實際操作「許氏注音、Dvorak 排列」螢幕、實體鍵盤,確認正常運作,且 24 項測試案例完全通過
  3. 切換至使用 libchewing v0.8.3 (Rust build) 為後端的樸實注音鍵盤 current 版
  4. 實際操作「許氏注音、Dvorak 排列」螢幕、實體鍵盤,按鍵對應都如 QWERTY 輸出,而不如預期以 Dvorak 排列方式輸出。且 24 項測試案例當中,switchToDvorakHsuLayout() 測試失敗

Expected behavior

當使用者將 chewing_set_KBType() 設為 KB_DVORAK_HSU,鍵盤應以 Dvorak 排列方式輸出。

Screenshots

Screenshot_20240529_113948 Screenshot_20240529_120343 Screenshot_20240529_114215

Platform (please complete the following information):

Additional context

hiroshiyui commented 4 months ago

@kanru 感謝!確認已經可以如預期運作!

Screenshot_20240529_214549