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

メールによる返信