[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1097]Mode line
- X-ml-count: 1097
- Subject: [MD:1097]Mode line
- From: kyota@xxxxxxxxxxxxx (Kyotaro HORIGUCHI)
- Date: Tue, 06 Apr 1999 22:41:09 +0900 (JST)
- X-mailer: Mew version 1.94b21 on Emacs 20.3 / Mule 4.0 (HANANOEN)
堀口です. これもバグと言うかべきかどうか..
At 05 Apr 1999 23:04:00 +1000, Yoshiki Hayashi <penny@xxxxxxxxxxxxxxxx> wrote in <wkd81jte0v.fsf@xxxxxxxxxxxxxxxx>
> Mode 行をマウスでドラッグすると、スクロールバーの方は移動し
> ますが、普通の編集領域の方の表示は変化しません。
> (もちろん、ドラッグし終わるとちゃんと再描画されます。)
Meaodw でモードラインをマウスで移動させる方法はわたしが知る限り2
つです. ひとつはモードライン上でホイールを回す方法と, もうひとつ
はモードラインをドラッグする方法です.
これらのイベントは elisp 関数で処理されています.
イベント 処理関数
mode-line mouse-wheel1 w32-handle-mouse-wheel-mode-line @ w32scroll.el
mode-line down-mouse-1 mouse-drag-mode-line @ mouse.el
ホイールの処理はホイールが回るたびに発生するイベント(ホイール回
転数)を処理して emacs に帰るというものです.
ドラッグの方は一旦ドラッグを検知したら, イベント処理関数内で継続
的にイベントを読みとってトラッグが終わるまで処理を続けます. とい
うわけでドラッグの方は elisp 関数の中でイベント処理を続けているの
でフレーム内の再描画が行われにくいのでしょう.
これはemacsが通常はマウスの移動イベントを無視するつくりになって
いるためのようです. emacsでドラッグを処理するためには track-mouse
という関数があって, この中ではマウスの移動が無視されずにイベント
として通知されるようになっています(とコメントには書いてある). よっ
てこちらはホイールと同じような方法で処理するのは難しいと思います.
--
堀口恭太郎