# HG changeset patch # User Richard M. Stallman # Date 768177467 0 # Node ID 81f9ad98c323fa30e58be56a3bde9100d3fe4301 # Parent 4cf4669565af0147fcf79966ee1e64405404c4d8 (frame-notice-user-settings): When replacing the first X frame, use the same geometry parms that were used to make it. (frame-remove-geometry-params): Treat user-size and user-position as geometry parms. Store all those parms into frame-initial-geometry-arguments. diff -r 4cf4669565af -r 81f9ad98c323 lisp/frame.el --- a/lisp/frame.el Thu May 05 20:30:32 1994 +0000 +++ b/lisp/frame.el Thu May 05 22:37:47 1994 +0000 @@ -112,6 +112,8 @@ ;; Record the parameters used in frame-initialize to make the initial frame. (defvar frame-initial-frame-alist) +(defvar frame-initial-geometry-arguments nil) + ;;; startup.el calls this function before loading the user's init ;;; file - if there is no frame with a minibuffer open now, create ;;; one to display messages while loading the init file. @@ -187,8 +189,15 @@ nil)) ;; Get rid of `reverse', because that was handled ;; when we first made the frame. - (new (make-frame (cons '(reverse . nil) - (delq (assq 'reverse parms) parms))))) + (new (make-frame + ;; Use the geometry args that created the existing + ;; frame, rather than the parms we get for it.q + (append frame-initial-geometry-arguments + (let (frame-initial-geometry-arguments) + (frame-remove-geometry-params + (cons '(reverse . nil) + (delq (assq 'reverse parms) + parms)))))))) ;; The initial frame, which we are about to delete, may be ;; the only frame with a minibuffer. If it is, create a ;; new one. @@ -352,15 +361,19 @@ (defun frame-remove-geometry-params (param-list) "Return the parameter list PARAM-LIST, but with geometry specs removed. This deletes all bindings in PARAM-LIST for `top', `left', `width', -and `height' parameters. +`height', `user-size' and `user-position' parameters. Emacs uses this to avoid overriding explicit moves and resizings from the user during startup." (setq param-list (cons nil param-list)) (let ((tail param-list)) (while (consp (cdr tail)) (if (and (consp (car (cdr tail))) - (memq (car (car (cdr tail))) '(height width top left))) - (setcdr tail (cdr (cdr tail))) + (memq (car (car (cdr tail))) + '(height width top left user-position user-size))) + (progn + (setq frame-initial-geometry-arguments + (cons (car (cdr tail)) frame-initial-geometry-arguments)) + (setcdr tail (cdr (cdr tail)))) (setq tail (cdr tail))))) (cdr param-list))