[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: frame position



yagi tatsuya <yagi@xxxxxxxxxxxxxxx> writes:

> 最近複数の Windows 環境を使う機会ができたのですが、
> frame を画面の右端に表示させる方法がわかりません。
> 
> x-display-pixel-width と frame-pixel-width などから
> 位置を計算して出そうとしても枠の大きさの分ずれてしまいます。
> 
> 決めうちにせずに位置を設定する方法はないのでしょうか?
 
問答無用で、frame を右端につくるには、

(defun my-make-frame-right ()
  (let ((frame (make-frame))
	(left (- (x-display-pixel-width) (frame-pixel-width))))
    (select-frame frame)
    (modify-frame-parameters frame 
			      (list (cons 'left left)))))

の様な関数を定義しておけば良いと思います。私の環境では上手く動作しまし
たが、他の場所でどうかは分かりません。
;; frame の方が画面より大きい場合も、frame の右端を画面の右端にあわせ
;; ます。:-P
 
Meadow を起動して最初に表示される frame を右端に表示したいのなら、

(modify-frame-parameters 
 (selected-frame) 
 (list (cons 'left (- (x-display-pixel-width) (frame-pixel-width)))))

を .emacs に書けば良いと思います。

> あと、これで調べていて気付いたのですが、
> メニューバーが表示されていない状態から
> メニューバーを表示させた直後は、
> なぜか frame-pixel-width, frame-pixel-height の
> 値が実際の値よりも 1 大きくなりました。

メニューバーの表示を切り替えても、frame-pixel-width は変わらないと思い
ますが。
但し、私の環境では Emacs から取ってきた toggle-scroll-bar をすると、
最初は 801 で画面からはみ出していたものが、次にスクロールバーの表示を
したときには、800 となって、1 だけ小さくなります。
原因は私には分かりません。

-- 
Yoshiki Hayashi