chewing / libchewing

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

fcitx5-chewing does not show candidate window with libchewing 0.8.0 rc1 #504

Closed yan12125 closed 3 months ago

yan12125 commented 3 months ago

Describe the bug fcitx5-chewing should show a candidate window when I hit key Down, but it doesn't. That happens after I update libchewing from 0.7.0 to 0.8.0 rc1.

To Reproduce Steps to reproduce the behavior:

  1. Configure fcitx5-chewing
  2. Type 1u4 (ㄅㄧˋ)
  3. Hit key Down

Expected behavior A candidate window is shown

Screenshots (nothing there when I hit key Down)

Platform (please complete the following information):

Additional context It seems fcitx5-chewing uses chewing_cand_CheckDone to decide whether to show the candidate window or not. gdb reports chewing_cand_CheckDone returns 0 when I hit key Down. That may be why I didn't see the candidate window.

/cc @wengxt this is related to fcitx5-chewing. It will be great if you can check if I understand fcitx5-chewing correctly or not.

kanru commented 3 months ago

Current tests has coverage for chewing_cand_CheckDone so the issue is probably somewhere else.

I'm not sure if you can run fcitx5-chewing from console. If you can enable environment variable RUST_LOG=debug it should print some debug info.

Updare: apparently current chewing_cand_CheckDone has a different behavior between Rust and C.

yan12125 commented 3 months ago

Thanks! I can confirm #505 fixes the candidate window in fcitx5-chewing.

I'm not sure if you can run fcitx5-chewing from console. If you can enable environment variable RUST_LOG=debug it should print some debug info.

Nice tip, I didn't know that. If you still need the log, I can paste the result of RUST_LOG=debug fcitx5 -D --verbose default=5,chewing=5 here.

kanru commented 3 months ago

So the C version of chewing_cand_CheckDone had a bug that... it always returns 0 after first input. This will only be fixed in the Rust version.

yan12125 commented 3 months ago

So the C version of chewing_cand_CheckDone had a bug that... it always returns 0 after first input. This will only be fixed in the Rust version.

No problem! I will continue using the Rust version unless there is a big issue.

yan12125 commented 2 months ago

I noticed fcitx5-chewing moved away from chewing_cand_CheckDone via https://github.com/fcitx/fcitx5-chewing/commit/4411a3a813207389ce0931b0a9de981869932866. New fcitx5-chewing works fine with libchewing 0.7.0 (C version), while there is a new GUI issue with libchewing 0.8.0 rc1 (Rust version). I will try to check what's going on.

Update: seems more like an issue in fcitx5-chewing - submitted https://github.com/fcitx/fcitx5-chewing/issues/18