Etsushi Kato
ekato****@ees*****
2004年 4月 14日 (水) 21:03:03 JST
補足です。 On Wed, Apr 14, 2004 at 03:41:00PM +0900, Etsushi Kato <ekato****@ees*****> wrote: > uim-0.3.4.2 になってから、 emacs 上で uim-xim を使うと、COMMIT_RAW 時 > のキー入力の表示に遅れが出るようになったと聞きました。 > > こちらで確かめてみたところ、Linux ではそのような症状は出ませんでしたが、 > Mac OS X では確かに問題が出ました。前回の変更で、イベントの処理の順番 > を変えるために send_sync_reply を先に持って来たことが原因だと思います。 > よく考えずパッチを送ってしまってすみません。 > > 一応の解決策として、すでに send_sync_reply してしまったという事で、 > COMMIT_RAW 時の send_key_event を push_packet ではなく > push_passive_packet で送るようにしてみました。 XIM を理解していないの > で、全く間違ったことをしている心配はありますが… > > 手元ではこれで動いているようですが、確かめて頂けると助かります。 > > --- uim-0.3.4.2.orig/xim/ximic.cpp Sat Apr 3 02:41:32 2004 > +++ uim-0.3.4.2/xim/ximic.cpp Wed Apr 14 14:50:24 2004 > @@ -438,7 +438,7 @@ > t->pushC16(e->state); > t->pushC8(e->same_screen); > t->pushC8(0); > - mConn->push_packet(t); > + mConn->push_passive_packet(t); > } > > void XimIC::commit_string(const char *str) 書き忘れてしまいましたが、上のように COMMIT_RAW の時でも push_passive_packet を使うようにすると、前回 skk のためにした変更は必 要なくなりました。OnKeyEvent() をした後に send_sync_reply するような正 しい(?)動きでも、uim-xim で skk での確定と改行の順序は正しく保たれます し、emacs での問題も起こらないようです。 -- Etsushi Kato ekato****@ees*****