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

Lubuntu ibus-mozcにて確定取り消し時のバグがあります #228

Closed
GoogleCodeExporter opened this issue Apr 22, 2015 · 2 comments

Comments

@GoogleCodeExporter
Copy link

Lubuntu12.10と14.04で同じ症状が出ました。

What steps will reproduce the problem?
1.変換した単語を確定
2.確定取り消しキーを押すと、確定させた単語はそのままで、その右に確定前の平仮名が出ます
3.このまま、確定、確定取り消し、と繰り返すと同じ単語を延々新しく並べる事も出来ます

Lubuntu12.04では、問題なく確定取り消し出来ます。
mozc_1.3.975.102が正常に動いているバージョンです。

Lubuntu14.04はすぐにOSをアンイストールしてしまったので、mozcのバージョンが分かりません。
12.04から12.10にアップグレードしたら同じ現象が起きたので、こちらもアンインストールしてしまいました。
12.10で不具合が出たのはmozc_1.5のはずです。細かいバージョンは分かりません。
12.10、14.04ともに、「Synapticパッケージマネージャ」からそのままインストールしたものです。
Frefox、Kate、Leafpadなどで確認しました。
それ以外のところではどうなるかよく調べれば良かったのですが、申し訳ありません。
ただ、一度も確定取り消しがきちんと出来た覚えがありません。

インターネット上で検索したのですがほとんど同じ報告がなかったので、個人の環境特有のものであれば申し訳ないです…。
またここのトピックも検索したのですが、同内容のものがありましたら申し訳ありません。

よろしくお願いいたします。

Original issue reported on code.google.com by [email protected] on 23 Jun 2014 at 5:46

@GoogleCodeExporter
Copy link
Author

情報ありがとうございます。時間の都合上実際に Lubuntu 12.04/12.10/14.04 をインストールしての確認はしておりませんが、おそらく ibus-qt の制限ではないかと思います。Qt ではなく Gtk+ を使用する、Ubuntu 環境では恐らく動作するものと思いますが、念のため確認してみていただけますか?

Mozc 1.3.975.102 まで動いていたものが動かなくなった点については、Mozc 1.4.1003.102 で確定取り消し時の方法を変えたため ibus-qt の制限にひっかかるようになったのだと考えられます。

一般的に、確定取り消しを行うには、カーソル直前の文字を一旦消去する必要があります。Mozc 1.3.975.102 までの Mozc は、バックスペースキー複数回押されたとアプリケーションに嘘をつくことでこれを実現していました。この方法の良い点は特殊な API を使用しなくても動作するところで、悪い点は不安定なところです。実際のところ、バックスペースが3回押されたとアプリケーションに嘘をついても、アプリケーションが 3 文字消してくれる保障はありません。

Mozc 1.4.1003.102 以降は、ibus_engine_delete_surrounding_text という専用の API を使用して、カーソル周辺の文字を削除するようになりました。この方法の良い点は (もし API が正しくサポートされていれば) 動作が安定するところです。悪い点は、非対応のアプリケーションではまったく動作しないところです。

調べてみたところ、少なくとも今年 4 月にリリースされた ibus-qt 1.3.3 まで、ibus_engine_delete_surrounding_text への対応はなされていなかったようです。
https://code.google.com/p/ibus/issues/detail?id=1642
https://code.google.com/p/ibus/issues/detail?id=1698
https://github.com/ibus/ibus-qt/compare/1.3.2...1.3.3

Lubuntu は KDE に依存しており、KDE は Qt に依存しており、Qt で書かれたアプリケーションは ibus-qt という仕組みを通じて IBus と通信します。この ibus-qt が ibus_engine_delete_surrounding_text に対応していないことが、今回確定取り消しが動作しない原因である可能性は高いように思われます。

ibus-qt 1.3.3 以降には上記バグに寄せられているパッチが取り込まれているようですので、もし該当する環境が確保できれば、改めてその環境で試されてみてはいかがでしょうか?

Original comment by [email protected] on 23 Jun 2014 at 12:27

  • Changed title: Lubuntu ibus-mozcにて確定取り消し時のバグがあります
  • Changed state: ExternalDependency
  • Added labels: OpSys-Linux

@GoogleCodeExporter
Copy link
Author

ご丁寧にありがとうございます。

ibus-qtに依存の現象ではないかという事で、Ubuntu14.04とXubuntu14.04で確認してみましたが、正常に動作しました。
LXDEが軽くて好きだったのですが、他のものを検討してみたいと思います。
ibus-qt 1.3.3の方も試してみたいと思います。
ありがとうございました。

古いバージョンのmozcに戻そうとしてみたり、色々とやって困っていたのですが、あっさりと解決いたしました。
ありがとうございました。

Original comment by [email protected] on 24 Jun 2014 at 1:39

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

No branches or pull requests

1 participant