[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: popup frames



>>>>> In [emacs-w3m : No.08200] 山岡 wrote:

> 画面が混雑して emacs-w3m のフレームがどこかに隠れてしまっている
> 場合でも、M-x w3m でそれを表に浮上させることができるのが便利です。
> みなさんのところでは、そういうふうに動作していますか?

> Fedora Core 4 の環境に変えてみて、ぼくはそれができなくなっている
> ことに気がつきました。どうも raise-frame という関数は、環境によっ
> ては動作しないものらしいです。

> そこで、

前回は変なコードを投稿しましたが、もっとましな方法を見つけました。

http://sweb.cz/tripie/utils/wmctrl/

ここから持ってきた wmctrl をインストールして、raise-frame を以下
のように advise したところ、emacs-w3m だけでなく、たいていのアプ
リケーションで Emacs の frame を前面に持ってくることができるよう
になりました。

(defadvice raise-frame (after make-it-work (&optional frame) activate)
  "Make it work."
  (call-process
   "wmctrl" nil nil nil "-i" "-R"
   (frame-parameter (or frame (selected-frame))'outer-window-id)))

普通の raise-frame は入力フォーカスまでは面倒を見てくれない場合
がありますが、これはそれをします。つまり、ぼくが今後 raise-frame
を使うコードを書くと、環境によっては動作しないものができるかもし
れません [残念!]。

;; 本来こんなことは必要無いはずなんですけれどねえ。Fedora Core 4
;; で苦戦しているのはこれだけではないのですが、どうしても Emacs
;; の raise-frame が使えなかったら捨ててしまおうと思っていたとこ
;; ろでした。そのうち落ち着いたら tips に追加します。