[Anthy-dev 2741] Re: uim-gtk

Back to archive index

Etsushi Kato ek.ka****@gmail*****
2005年 12月 20日 (火) 23:44:49 JST


こんばんは。

On Tue, Dec 20, 2005 at 07:50:37PM +0900,
Masanari Yamamoto <h0131****@ice*****> wrote:

> anthy-use-with-vi?を#tにしていると、gvimでundoがおかしくなるという問題
> があります。
>
> vimのソースを読むと、xim_has_preeditingがTRUEのときundoするといけない
> ようです。xim_has_preeditingがFALSEになる条件は、preedit_endが一回、ま
> たは、プリエディットの長さが0の状態でpreedit_changedが二回発生すること
> です。
>
> r2658でESCを押したときにもim-update-preeditを呼んで、preedit_changedを
> 発生させるようにしました。
> r2658の変更なしでも、preedit_endを発生させるようにすれば解決できます。

なるほど。解説ありがとうございます。こちらでも vim のコードみてみ
ましたが、よく理解できました。

では、r2658 については uim-skk と同様に、必要な場合のみ、preedit
update させるようにして、普通の commit-raw では、preedit update
しないようにして変更してもいいでしょうか? なるべく無駄は省きたい
と思います。

> さらに、key snooperを使わずにkeypressを処理するようにすれば、gvimから
> IMを制御できるようになります。(多分)
>
> key snooperはgtk-im-uim.cの中にもよくないと書いてありますが、key
> snooperを使わないといけない理由がなにかあるのでしょうか?

これについては、田畑さんの仰るとおりで、キーボードーショーット
カットのからみで snooper を使わざるをえない、ということだと理解
しています。詳しい経緯は当事者でないのでよく知りませんけど。
snooper ではなく、toplevel の widget に keypress をバインドしても
いいのですが、結果は同じです。

あと以前ヤマケンさんとした comtext reset の議論にも絡んでいて、
snooper を使っていると、本来 widget が意図している挙動 (reset) を
捉えることができないという問題があるようです。
--
Etsushi Kato
ek.ka****@gmail*****



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