[Date Prev][Date Next][Thread Prev][][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 はこの辺りでの相性が良くないのですが。
-- 
山岡