[Anthy-dev 902] Re: uimでのescapeによるIMの無効化

Back to archive index

Shugo Maeda shugo****@ruby-*****
2004年 7月 7日 (水) 02:08:36 JST


前田です。

TOKUNAGA Hiroyuki wrote:
> 特定のIM(uim-anthyとか、uim-primeとか)に対してで良ければ、割と簡単にでき
> ます。例えば、uim-primeで、Escapeを押した際にIMを半角英数モードにしつつ
> アプリケーションにescapeを送るならこんな感じです。
> 
> (define prime-push-key-orig prime-push-key)
> (define prime-push-key
>   (lambda (c key key-state)
>     (if (= key 'escape)
> 	(prime-context-set-mode! (context-data c) prime-mode-latin))
>       (prime-push-key-orig c key key-state)))
> 
> 将来的にこのカスタマイズがずっと可能であると保証はできませんが、しばらく
> はこれでいけると思います。

うまく行きました、ありがとうございました。

Katoさんに教えていただいたuim-skk用のコードを参考にControl-[でも同じ挙動
にして、uim-appletのモード表示も更新されるようにしてみました。

(define prime-push-key-orig prime-push-key)
(set! prime-push-key
  (lambda (c key key-state)
    (if (or (= key 'escape)
            (and (= key 91) ;; [
                 (= key-state 2))) ;; control
      (let ((sc (context-data c))
            (id (context-id c)))
        (prime-context-set-mode! sc prime-mode-latin)
        (prime-update-mode id sc)))
    (prime-push-key-orig c key key-state)))

何か問題がありましたら御指摘ください。

これで快適に使えそうです:)

-- 
前田 修吾



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