[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: タブのシャフリング
>>>>> In [emacs-w3m : No.09305] Hideyuki SHIRAI (白井秀行)さん wrote:
>> いくら速く回しても double- や triple- の event を観測できないの
>> は、システムが違うからなんでしょうか。
> emacs-w3m をちょっと戻して、mouse-4,5 に山岡さんの手が入る前のぼ
> くのコードに戻してクルリンしたのですが、それでもやっぱり、
> "double-, triple- is undefined."
> が出ました。
そうですか。ぼくの環境がどうなっているか調べる必要がありそうです。
もっとも、前後に押すことしかできないマウスは別として、車輪の場合
の double-, triple- というのは、あまり意味が無い気もしますが。
> 作った当時は結構試験したつもりなので、自分の環境でな
> にかやっちまったのかな?と emacs -q で試したら問題なく高速クルリ
> ンができました。なので、(とりあえず)この問題は忘れてください (__)
> ## なんだろうなぁ。追求しておきます。
了解です。
> もう一点、
>>> (1) mouse-pixel-position() が変な値を返すことがある。
>>
>>> (#<frame *scratch* [e22] : <2007-3-28 () 17:55:34 MAIL(1)> [1] 0x465c00> nil)
[...]
> こいつは、原因がわかりました。ぼくは X の環境では unclutter を
> % unclutter -idle 1 -jitter 10
> で動かしているのですが、クルクルしているうちに一秒たって
> unclutter が召喚されると上記のような値が帰ってきて破綻します。
> # そういえば、昔悩んだかすかな記憶が。。。
ぼくも昔使っていましたが、何の理由だったか、ともかく捨ててしまい
ました。
> この問題は山岡さんの示された
> - (setq posn (mouse-pixel-position))
> + (while (not (cadr (setq posn (mouse-pixel-position)))))
> で解決しました。無限ループになることはないと思うけど。。。
うーん、その frame が再び選択されるまでは超高速で回っているはず
なので、ちょっとまずいかも。sleep-for を入れるか。あるいはこんな
ふうにしたら unclutter に勝てませんか?
(let ((frame (selected-frame)))
(while (not (cadr (setq posn (mouse-pixel-position))))
(select-frame-set-input-focus frame)))
;; Fedora Core と Emacs はこの辺りでの相性が良くないのですが。
--
山岡