[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: ミニバッファでIMEがONにならない
- X-ml-count: 6487
- Subject: Re: ミニバッファでIMEがONにならない
- From: YAGI Tatsuya <ynyaaa@xxxxxxxxx>
- Date: Wed, 27 Jul 2005 18:58:20 +0900
- User-agent: T-gnus/6.17.3 (based on No Gnus v0.3) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.3 Emacs/21.1 (i386-mingw-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/2.00 (KIKYOU)
矢木です。
MIYOSHI Masanori <miyoshi@xxxxxxxxxxx> writes:
>Meadow-3.00-dev で mw32-ime-state を排除してみました。
>
>結構大きな修正ですので、使ってみて問題があるようであれば教えてく
>ださい。 > Meadow-3.00-dev を使っている方
Meadow3 は使っていないので meadow.el を読んでみただけですが、
・mw32-ime-select-window-hook, mw32-ime-set-selected-window-buffer-hook
中で current-input-method が non-nil かで判定している。
(equal current-input-method "MW32-IME") で判定しないとまずいはず。
・mw32-ime-select-window-hook の
(when (eq new (minibuffer-window))
(setq current-input-method nil))
があるとミニバッファから C-x o をくり返して戻って来ると
IMEが強制的にOFFになってしまう。
C-g でミニバッファを抜けた場合への対処としては、quail に倣って
mw32-ime-state-switch でIMEをONにする処理の中に
(if (eq (selected-window) (minibuffer-window))
(add-hook 'minibuffer-exit-hook 'mw32-ime-exit-from-minibuffer))
を入れておくのが良いと思う。mw32-ime-exit-from-minibuffer の定義は次の通り。
(defun mw32-ime-exit-from-minibuffer ()
(inactivate-input-method)
(if (<= (minibuffer-depth) 1)
(remove-hook 'minibuffer-exit-hook 'mw32-ime-exit-from-minibuffer)))
・mw32-ime-toggle が current-input-method を無視している。
(defun mw32-ime-toggle ()
(interactive)
(if (equal current-input-method "MW32-IME")
(inactivate-input-method)
(activate-input-method "MW32-IME")))
こんな感じにして、mw32-ime-state-switch 中の
fep-force-on/off の引数を nil にすれば良いと思う。
その場合 mw32-ime-on/off-hook, mw32-ime-mode-line-update は
mw32-ime-state-switch 内で実行しておく必要がある。
・mw32-ime-toroku-region で読みを入力する時に
ミニバッファでIMEをONにしているが、current-input-method が nil のまま。
read-multilingual-string を使うと良いのでは。
おわり
mw32-ime-toroku-region-yomigana と isearch-ime-keymap の意味がわからない。