summaryrefslogtreecommitdiff
path: root/lisp/frame.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-08-02 05:39:48 +0000
committerRichard M. Stallman <rms@gnu.org>1994-08-02 05:39:48 +0000
commit5b66a32f60ce3484cea30469369926dcae9c2768 (patch)
tree33180e0999349a56fcec457df5d76e3dc71d0797 /lisp/frame.el
parent37fdc96f78ce8927a6f7d57b2da148d8b0b240f4 (diff)
downloademacs-5b66a32f60ce3484cea30469369926dcae9c2768.tar.gz
(frame-delete-all): New function.
(frame-notice-user-settings): Call it--with or without separate minibuffer frame.
Diffstat (limited to 'lisp/frame.el')
-rw-r--r--lisp/frame.el25
1 files changed, 21 insertions, 4 deletions
diff --git a/lisp/frame.el b/lisp/frame.el
index a9ddc592818..0688b3098d5 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -228,13 +228,13 @@ These supersede the values given in `default-frame-alist'.")
;; when we first made the frame.
(setq parms (cons '(reverse) (delq (assq 'reverse parms) parms)))
(if (assq 'height frame-initial-geometry-arguments)
- (setq parms (delq (assq 'height parms) parms)))
+ (setq parms (frame-delete-all 'height parms)))
(if (assq 'width frame-initial-geometry-arguments)
- (setq parms (delq (assq 'width parms) parms)))
+ (setq parms (frame-delete-all 'width parms)))
(if (assq 'left frame-initial-geometry-arguments)
- (setq parms (delq (assq 'left parms) parms)))
+ (setq parms (frame-delete-all 'left parms)))
(if (assq 'top frame-initial-geometry-arguments)
- (setq parms (delq (assq 'top parms) parms)))
+ (setq parms (frame-delete-all 'top parms)))
(setq new
(make-frame
;; Use the geometry args that created the existing
@@ -298,6 +298,14 @@ These supersede the values given in `default-frame-alist'.")
(let (newparms allparms tail)
(setq allparms (append initial-frame-alist
default-frame-alist))
+ (if (assq 'height frame-initial-geometry-arguments)
+ (setq allparms (frame-delete-all 'height allparms)))
+ (if (assq 'width frame-initial-geometry-arguments)
+ (setq allparms (frame-delete-all 'width allparms)))
+ (if (assq 'left frame-initial-geometry-arguments)
+ (setq allparms (frame-delete-all 'left allparms)))
+ (if (assq 'top frame-initial-geometry-arguments)
+ (setq allparms (frame-delete-all 'top allparms)))
(setq tail allparms)
;; Find just the parms that have changed since we first
;; made this frame. Those are the ones actually set by
@@ -325,6 +333,15 @@ These supersede the values given in `default-frame-alist'.")
;; Make sure frame-notice-user-settings does nothing if called twice.
(setq frame-initial-frame nil)))
+;; Delete from ALIST all elements whose car is KEY.
+;; Return the modified alist.
+(defun frame-delete-all (key alist)
+ (let ((tail alist))
+ (while tail
+ (if (eq (car (car tail)) key)
+ (setq alist (delq (car tail) alist)))
+ (setq tail (cdr tail)))
+ alist))
;;;; Creation of additional frames, and other frame miscellanea