chadliu23 / mozc

Automatically exported from code.google.com/p/mozc
0 stars 0 forks source link

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

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Lubuntu12.10と14.04で同じ症状が出ました。

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

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

Lubuntu14.04はすぐにOSをアンイストールしてしまったので、moz
cのバージョンが分かりません。
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 chopman...@gmail.com on 23 Jun 2014 at 5:46

GoogleCodeExporter commented 9 years ago
情報ありがとうございます。時間の都合上実際に 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 yukawa@google.com on 23 Jun 2014 at 12:27

GoogleCodeExporter commented 9 years ago
ご丁寧にありがとうございます。

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

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

Original comment by chopman...@gmail.com on 24 Jun 2014 at 1:39