Etsushi Kato さん どうも情報ありがとうございます。
uimでは、focus_out/focus_inでなんとかなるんですか。iBusではそのハックも効かない設定があって困ってますが…… Gtk+のIMモジュールはアプリケーション側から見ると、とにかく自由度が無くてキツイですね…… On 1月8日, 午後1:46, Etsushi Kato <[email protected]> wrote: > 詳細は忘れてしまいましたが、gtk_im_context_reset() の問題については、 > このあたりhttp://lists.freedesktop.org/archives/uim/2006-November/001627.html > を参考にしてみてください (非常にわかりにくいとは思いますが)。 > > http://library.gnome.org/devel/gtk/stable/GtkIMContext.html#gtk-im-co... > にあるとおり、gtk_im_context_reset() は > Notify the input method that a change such as a change in cursor > position has been made. This will typically cause the input method to > clear the preedit state. > と、典型的には clear が求められますが、cursor position change 時の挙動は > 各言語の IM 依存と考えられます。 > > ということで、GTK+ では、cursor move と本当の reset が区別 > されていないので、各言語の IM で求められる挙動対応するために、 > uim では以下のように扱っています (以下の説明が正確かどうかは > 忘れてしまったのでちょっと不確実ですが)。 > > * フォーカスされている GtkIMContext内での gtk_im_context_reset(): カーソルの移動と仮定 > * それ以外: 本当のリセット > > カーソルの移動時の挙動は、uim 内の各 IM に依存します。 > * Byeoru (ハングル) の場合、入力中のプリエディットは確定されます。 > * 日本語 IM の場合は、プリエディットの relocation をします。 > > ということで、アプリケーションが確実にプリエディットを確定したい > のであれば、そのように commit を送るのがよいでしょう。 > > 2010/1/8 masayuki nakano <[email protected]>: > > > > > Mozilla Japanの中野です。 > > > はじめまして。よろしくお願いします。 > > > 私自身はuimではテストできていないのですが、uimを利用していた方から、Firefoxのエディタ上に未確定文字列がある状態でクリックしても文 > > 字列が確定されない、という報告を受けています(報告された方はDebian sidでテストされたそうです)。この現象は現在のところ、uimと > > iBusでしか確認されていないので、これらのIMの問題ではないかとの推測からこちらへ来ました。 > > > Firefox等、Mozilla関連のプロダクトの共有コアであるGeckoでは、トップレベルのウインドウごとにIMのコンテキストを生成し、ウイ > > ンドウ内の全ての子ウィジット、そしてその中に生成されるエディタ(<input>や<textarea>、 > > contentediable="true"な要素等)間でそれを共有するようになっています。 > > > Geckoの実装の都合や、他のプラットフォームとの挙動の統一のため、現在はエディタ間、あるいはウィジット間でフォーカス移動が発生した場合や、エ > > ディタ内でクリックした場合に未確定文字列が存在する場合、これを強制的に確定し、処理を簡略化しています。このために > > gtk_im_context_reset()を利用しているのですが、これがどうもuimでは機能していないのではないか、と疑っています。 > > > 実際にこの現象をテストするには、Firefox3.5.xか、3.6の開発版、もしくはtrunk buildで、 > > 1. 検索バー等にフォーカスを移動 > > 2. IMで適当に文字を入力 > > 3. そのエディタ内でクリック > > 4. スペースキー等で変換 > > を行ってみてください。見た目では確定しますが、4の時点で、変換は続行されてしまい、IMがresetされていないことが確認できるかと思います。 > > > この問題が、uimの実装によるものなのか、どうなのか、どなたか分かりますでしょうか? > > > ではよろしくお願いします。 > > > See also:https://dev.mozilla.jp/2010/01/gtk_im_context_reset_not_working/ > > > -- > > Masayuki Nakano <[email protected]> > > Manager, Internationalization, Mozilla Japan. > > > -- > > Google Groups "uim-ja" group > > [email protected] > >http://groups.google.com/group/uim-ja/about > > -- > Etsushi Kato > [email protected]
-- Google Groups "uim-ja" group [email protected] http://groups.google.com/group/uim-ja/about
