[Anthy-dev 406] uim + Sodipodi

Back to archive index

Kouhei Sutou kou****@cozmi*****
2004年 1月 12日 (月) 00:58:39 JST


はじめまして,須藤と申します.

Sodipodiでuimを使うと,テキストを入力した時点でSodipodiが終
了します.

gdbで追ってみたところ,以下のようになっているようです.

  (1) SodipodiはGDK_KEY_PRESSイベントが発生した時にテキスト
      の初期化をしているようだ.

  (2) uimはuim_key_snoopでアプリケーションがGDK_KEY_PRESSイ
      ベントを扱う前に"preedit_changed"シグナルを発生させる
      ようだ.

  (3) Sodipodiは"preedit_changed"シグナルが発生したらテキス
      トを挿入したりアンドゥリストをいじったりしているようだ.

Sodipodi的には(1)->(3)の順序で実行されることを想定しているよ
うですが,uimと一緒に使うことにより(2)->(3)->(1)という順序で
実行されてしまうようです.
# 試しにuim_key_snoopでuim_press_keyが実行される前に
#   p g_signal_emit_by_name(grab_widget, "key_press_event", key)
# としてやると(1)->(2)->(3)と実行されてうまくいきました.

これはSodipodiの作り方が悪いのですか?

# im-jaはfilter_keypressでシグナルを発生させているのでこの問
# 題は発生していないようです.



Anthy-dev メーリングリストの案内
Back to archive index