Mercurial > emacs
changeset 95839:564317b2d075
(dframe-reposition-frame-emacs): Reorder test, and use unless.
(x-display-pixel-width, x-display-pixel-height):
Define for compiler, for builds without X.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Thu, 12 Jun 2008 03:53:47 +0000 |
parents | e7b40b183291 |
children | 0e3c2e18b9c3 |
files | lisp/dframe.el |
diffstat | 1 files changed, 19 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/dframe.el Thu Jun 12 03:53:07 2008 +0000 +++ b/lisp/dframe.el Thu Jun 12 03:53:47 2008 +0000 @@ -417,22 +417,24 @@ (dframe-reposition-frame-xemacs new-frame parent-frame location) (dframe-reposition-frame-emacs new-frame parent-frame location))) +;; Not defined in builds without X, but behind window-system test. +(declare-function x-display-pixel-width "xfns.c" (&optional terminal)) +(declare-function x-display-pixel-height "xfns.c" (&optional terminal)) + (defun dframe-reposition-frame-emacs (new-frame parent-frame location) "Move NEW-FRAME to be relative to PARENT-FRAME. LOCATION can be one of 'random, 'left-right, 'top-bottom, or a cons cell indicationg a position of the form (LEFT . TOP)." - (let* ((pfx (dframe-frame-parameter parent-frame 'left)) - (pfy (dframe-frame-parameter parent-frame 'top)) - (pfw (frame-pixel-width parent-frame)) - (pfh (frame-pixel-height parent-frame)) - (nfw (frame-pixel-width new-frame)) - (nfh (frame-pixel-height new-frame)) - newleft newtop - ) - ;; Position dframe. - (if (or (not window-system) (eq window-system 'pc)) - ;; Do no positioning if not on a windowing system, - nil + ;; Position dframe. + ;; Do no positioning if not on a windowing system, + (unless (or (not window-system) (eq window-system 'pc)) + (let* ((pfx (dframe-frame-parameter parent-frame 'left)) + (pfy (dframe-frame-parameter parent-frame 'top)) + (pfw (frame-pixel-width parent-frame)) + (pfh (frame-pixel-height parent-frame)) + (nfw (frame-pixel-width new-frame)) + (nfh (frame-pixel-height new-frame)) + newleft newtop) ;; Rebuild pfx,pfy to be absolute positions. (setq pfx (if (not (consp pfx)) pfx @@ -455,8 +457,7 @@ ;; A - means distance from the right edge ;; of the display, or DW - pfx - framewidth (- (x-display-pixel-height) (car (cdr pfy)) pfh) - (car (cdr pfy)))) - ) + (car (cdr pfy))))) (cond ((eq location 'right) (setq newleft (+ pfx pfw 5) newtop pfy)) @@ -479,8 +480,7 @@ ;; otherwise choose side we overlap less ((> left-margin right-margin) 0) (t (- (x-display-pixel-width) nfw 5)))) - newtop pfy - )) + newtop pfy)) ((eq location 'top-bottom) (setq newleft pfx newtop @@ -494,15 +494,14 @@ ((>= bottom-margin 0) bottom-guess) ;; Choose a side to overlap the least. ((> top-margin bottom-margin) 0) - (t (- (x-display-pixel-height) nfh 5))))) - ) + (t (- (x-display-pixel-height) nfh 5)))))) ((consp location) (setq newleft (or (car location) 0) newtop (or (cdr location) 0))) (t nil)) (modify-frame-parameters new-frame - (list (cons 'left newleft) - (cons 'top newtop)))))) + (list (cons 'left newleft) + (cons 'top newtop)))))) (defun dframe-reposition-frame-xemacs (new-frame parent-frame location) "Move NEW-FRAME to be relative to PARENT-FRAME.