uim スレッド 8 (930レス)
上下前次1-新
抽出解除 レス栞
589(2): 2013/02/03(日)22:36 ID:w9Lftygn(1) AAS
>>587
どうも。
toggle ではなく off にしたいのでそれはやめておきます。
~/.uim.d/socket/uim-helper で状態みてればいいという話もありますが。
# ~/.uim.d/socket/uim-helper に書くときも必要なときだけの方がいいかも。まあ無条件の方が楽か。
で、原因は判りました。1秒 xterm が止まっているときはこんな状態になっています。
- xterm は XSetICValues 呼んで止まっている。uim-xim のレスポンス待ち。
- uim-xim は main_loop 内の select でブロックしている。これの timeout が 1秒。
- 通常なら XSetICValues の X イベントが来ればその処理に進むはず。
ブロックする理由は以下。
uim-xim は select の結果をみて uim-helper から何か来てればそれを処理する。
この処理内で XTranslateCoordinates を呼んでいる。
このタイミング(select - XTranslateCoordinates 間)で XSetICValues の X イベントが来ると
XTranslateCoordinates が読み込んで event queue に入れる。
既に event queue に入っているものは select では検知できないので、ブロックする。
(event queue は X イベントの処理で空になるので、通常の select 時は空になっている。)
とりあえず ↓ な patch で直りましたので、これで使ってみます。いまのところブロックしてません。
# ほとんど意味がなくなるので timeout 時の check_pending_xevent を消しているけど、
# 要るんかな。1,2秒間隔 XFlush の意味しか残らないけど。
外部リンク:ja.pastebin.ca
# uim-1.8.4-check-xevents-queued.patch って書いたらファイル名切れた。32文字か。
しかしコマンド実行後に l を押すくせが抜けない。
590: 2013/02/03(日)22:46 ID:Nv/ezc0W(1) AAS
>>589
そういうのはちゃんとuimのバグトラッカーに乗っけなよ。
そのほうが中の人もマージしやすいでしょ。
593: 2013/02/04(月)19:37 ID:SLzXXiCZ(1) AAS
>>589
トグルにしたくないなら、uim-pref-gtkで、
オフ(SKKの場合は半角英数入力モード)にするキーの方だけに
"<Control"等を設定しておいて、外からctrl+commaを送り付ければOK。
xdotool search --name xterm windowfocus key ctrl+comma
が、現状のuim-skkだと、半角英数入力モード時に再度<Controlを送ると
そのまま","が入力されてしまいますね。
半角英数入力モードのキー処理(skk-proc-state-latin)で
オフにするキーだったら無視する処理を追加すればいいはず。
ただし、"l"キーの場合は無視しないでそのまま通す必要あり。
2130c2130,2133
< (skk-commit-raw sc key key-state))
---
> (if (not (and (or
> (control-key-mask key-state))
> (skk-latin-key? key key-state)))
> (skk-commit-raw sc key key-state)))
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.740s*