Teppei Tamra
tam-t****@par*****
2005年 5月 15日 (日) 13:26:08 JST
TAMです。 2005 5月 15 日曜日 12:12、Takuro Ashie さんは書きました: > reset()は文字どおりIMを初期状態にリセットするための物なので、この修正は > まずいですね。 ですね。そう思います。 > > 具体的には、KMailはどうもマウスでカーソルを操作した時にreset()を > > 発行するようになってるっぽいです。 > 動作を確認できる環境が無くて、コードも読んでいないので、これと > "shift + カーソルキー" による範囲指定との相関がよくわからなかったのです > がどういうことでしょうか? この部分は多分qtimm側でなんかあるんだと思います。 実際update_preedit_string()を呼ばなければOKなので、その処理の 間に何か起こってると考えてます。 何かまで追えきれてませんが…。 > マウスでカーソルを移動したときのreset()は特に問題は無い(許容範囲であるべ > き?)ように思います。 以前素直に「resetはリセット〜♪」と考えてscim-wnnでreset()に wnnとの接続断のコードを入れていたんですが、どうもQtモノで カーソルの動きが悪いので調べてみたら、カーソルを一字動かす度に reset()が呼ばれている感じでした。(つまりカーソル動かす度にWnnと 切断/接続が繰り返されていた) で、今調べてみたら、やはり今もカーソルの移動がある度に呼ばれている ようです。 ただ、これgeditなんかでは呼ばれていないっぽいんです。 geditの場合は一度フォーカスを外して戻した場合なんかはresetも 呼ばれているようですが、カーソルの移動(キー/マウスを問わず)では、 呼ばれてる気配が無いっぽいです。 このへんの差とかが良く分からないので、「どういう条件で呼ばれる ことになってるのか」とか、混乱しています。 正直個人的にresetをどう言うふうに使って良いのか分からないので ほのかたんでは内部のバッファ消し等しか書いていません。