Daisuke Kameda
kamin****@cc*****
2003年 7月 9日 (水) 22:19:03 JST
Daisukeです。 2003年 7月 9日 水曜日 21:38、yusuk****@cheru***** さんは書きました: > また、Qtはプリエディットが無い時に一回キーが押されると4回の > XSetICValuesを呼ぶというのも原因のようです。 > キーイベントを含めてXIMサーバとの間でパケットが5往復する > ことになります。また、jmodeはXのイベント経由で通信をするので > コンテキストスイッチは jmode <-> Xサーバ <-> Qtアプリで > 発生してて、結構悲惨です。 > > XSetICValuesを呼んでいるのは > QInputContext::setComposePosition()と > QInputContext::setComposeArea()で2回です。 > XSetICValuesは名前がValue*s*で複数形であることから > わかるようにこの2回の呼出しは統合できます。 この点については、今回の未踏で行う作業の初期段階である XIM処理の局所化でついでに直すことになりますので、 バックポートという形でパッチを作ることになると思います。 #もちろん、未踏外です。 > さらに、これらはキーを押した時とカーソルが移動した時の > 2回呼ばれて計4回です。この場合はカーソルを動かしたあとの > 一回にまとめれば良いので統合することができます。 こっちは、直すとすると結構多くの箇所の変更を余儀なくされそう ですので、もうちょっと後になるんじゃないかなと思います。 #immodule機能の実装時点でのテキストウィジェットの見直し時とか。 > ということで、直し方はわかったのですが、XIM関連のコードを > 直すよりも本質的な改善に取り組むというのが、私も含めた > 周囲の皆様のコンセンサスだと解釈しているので、この問題の > 優先順位は低いです。 ということでよろしくお願いします。 -- Daisuke Kameda <kamin****@cc*****>