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

変換未確定時、辞書登録時にマウスで他の場所をクリックするとエラーになる #260

Closed
s3-odara opened this issue Feb 5, 2025 · 7 comments · Fixed by #262 or #264

Comments

@s3-odara
Copy link

s3-odara commented Feb 5, 2025

バグの簡潔な説明
変換未確定時、辞書登録時にマウスで他の場所をクリックするとエラー候補になる

再現手順

GUIアプリケーション (firefox、Dolphin、KDEスタートメニューの検索) で再現します。
Alacrittyとtmux上では問題なさそうです。

  1. かなモードにする。
  2. Ji <space> <space> <space> と入力して候補ウィンドウを出す。
  3. マウスで何もない場所をクリックする。
  4. 「▼エラー」 とエラー候補になる。

  1. かなモードにする。
  2. Jisyo <space> <space> <space>...と入力して辞書登録モードにする。
  3. マウスで何もない場所をクリックする。
  4. 「▼【 」と表示されて入力できなくなる。

期待した動作再現手順を行うと本来ならば起こると思われる内容を説明してください。

エラー候補は表示されず、その後も問題なく入力できる。

動作環境 (次の内容を挙げてください)

  • libcskk v3.1.3
  • fcitx5-cskk v1.2.0
  • kwin (wayland) v6.2.5

その他の情報
バグ内容について、他の情報をこちらに説明してください。

@tattsan
Copy link

tattsan commented Feb 17, 2025

X11上でも同じ現象が見られます。

@naokiri
Copy link
Owner

naokiri commented Feb 19, 2025

しばらくパソコンがなく見落としていてすみません。今日確認できました。実際にアプリケーションによって挙動が違うのでちょっと調査に時間がかかりそうですがこちらの環境で再現自体はできています。

@naokiri
Copy link
Owner

naokiri commented Feb 22, 2025

cskk自体を自分でもずっと使用していてこのようなありそうな条件のバグになぜ気づかないんだろうと思ってましたが仕事用に安定環境として使っているUbuntu 22.04+fcitx5.0.14-1+fcitx5-cskk 1.2.0+cskk 3.0.0あたりでは発生しないみたいで、他の環境で使ってバグ報告がもらえてありがたいです。新しいコンピュータでは自分でもたびたび遭遇するので最優先で調べます。

@naokiri
Copy link
Owner

naokiri commented Feb 23, 2025

期待される動作について
続きを入力できるのか、何も入力がない初期状態から入力しなおすのか

Step3. マウスで何もない場所をクリックする とアクティブなテキストボックス外のクリックとなり現在fcitx5ではIM Engineがdeactivateされます(Link1)。 そこでのデフォルト動作はIM状態のresetで、fcitx-cskkでも実装の簡易化のために倣ってresetするようにしています。(Link2)

仮にテキストボックスにフォーカスを戻しても続きからの入力をしようとするとIMEngine側でcontextごとに(あるいはfcitx5のオプションを無視してcontextを無視し)stateを保持することになり、大改修になることがわかりました。fcitx5-cskkサイドで一応可能な変更点としてissueには残しておきます(Link3)が、一旦はこのIssueではresetがうまくできていない不具合だけ修正してエラー候補が表示されず、何も入力がないcskkにとっての初期状態に戻すことにします。
inputmode(かな、カナ、ascii等)は元より初期状態を定義したり保持していないうえにエラーにはならないと思われるのでcskk側としてはこれだけはリセット後も残ることにしておきます。fcitx5-cskkでの初期inputmodeの設定は無視されることになりますが、一応エンバグ前の処理と同じになるはずです。

  1. https://github.com/fcitx/fcitx5/blob/0fd08d56a0c5c0a4d8688ed84591b47e86c28d2f/src/lib/fcitx/inputmethodengine.h#L57
  2. https://github.com/fcitx/fcitx5-cskk/blob/989150523f0792b823531aab16c34d5554248c68/src/cskk.cpp#L95
  3. [Feature] Don't lose the input when changing the focus window fcitx/fcitx5-cskk#80

@naokiri
Copy link
Owner

naokiri commented Feb 23, 2025

間違えたbranchでcloseしてしまったのでreopen

@naokiri naokiri reopened this Feb 23, 2025
naokiri added a commit that referenced this issue Feb 23, 2025
Fix issue #260. Reset composition mode on reset
@naokiri
Copy link
Owner

naokiri commented Feb 23, 2025

https://github.com/naokiri/cskk/releases/tag/v3.1.4

v3.1.4で修正をリリースしました。
@s3-odara バグ報告ありがとうございました。

@s3-odara
Copy link
Author

対応ありがとうございます。
期待した動作については、続きから入力したいというわけではなく、エラーが起きずに別の入力を問題なくできることを意図したつもりです。

windowsやその他のIMEの動作でも、フォーカスを変えたときにリセットされていたと思いますし、fcitx5で無理なくできないことならこの状態がいいような気もします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants