emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/frame.el,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/frame.el,v
Date: Wed, 10 Oct 2007 20:18:46 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        07/10/10 20:18:45

Index: lisp/frame.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/frame.el,v
retrieving revision 1.255
retrieving revision 1.256
diff -u -b -r1.255 -r1.256
--- lisp/frame.el       9 Oct 2007 08:52:46 -0000       1.255
+++ lisp/frame.el       10 Oct 2007 20:18:42 -0000      1.256
@@ -673,6 +673,10 @@
 ;; Alias, kept temporarily.
 (define-obsolete-function-alias 'new-frame 'make-frame "22.1")
 
+(defvar frame-inherited-parameters '(environment client)
+  ;; FIXME: Shouldn't we add `font' here as well?
+  "Parameters `make-frame' copies from the `selected-frame' to the new frame.")
+
 (defun make-frame (&optional parameters)
   "Return a newly created frame displaying the current buffer.
 Optional argument PARAMETERS is an alist of parameters for the new frame.
@@ -723,15 +727,11 @@
     (run-hooks 'before-make-frame-hook)
     (setq frame (funcall frame-creation-function (append parameters (cdr (assq 
w window-system-default-frame-alist)))))
     (normal-erase-is-backspace-setup-frame frame)
-    ;; Inherit the 'environment and 'client parameters.
-    (let ((env (frame-parameter oldframe 'environment))
-         (client (frame-parameter oldframe 'client)))
-      (if (not (framep env))
-         (setq env oldframe))
-      (if (and env (not (assq 'environment parameters)))
-         (set-frame-parameter frame 'environment env))
-      (if (and client (not (assq 'client parameters)))
-         (set-frame-parameter frame 'client client)))
+    ;; Inherit the original frame's parameters.
+    (dolist (param frame-inherited-parameters)
+      (unless (assq param parameters)   ;Overridden by explicit parameters.
+        (let ((val (frame-parameter oldframe param)))
+          (when val (set-frame-parameter frame param val)))))
     (run-hook-with-args 'after-make-frame-functions frame)
     frame))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]