詳細は忘れてしまいましたが、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-context-reset にあるとおり、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
