summaryrefslogtreecommitdiff
path: root/lisp/frame.el
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2007-10-12 08:49:20 +0000
committerMartin Rudalics <rudalics@gmx.at>2007-10-12 08:49:20 +0000
commit40aa4c27cb7cac7ef2ff7a88c504cc2ae42da194 (patch)
tree5eab8ea94a26997b3c468719af4a9516683b7488 /lisp/frame.el
parent5839d7e85ca7596071d459595f194f45027535df (diff)
downloademacs-40aa4c27cb7cac7ef2ff7a88c504cc2ae42da194.tar.gz
(set-frame-configuration): Assign name parameter only
if it has been set explicitly before.
Diffstat (limited to 'lisp/frame.el')
-rw-r--r--lisp/frame.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/frame.el b/lisp/frame.el
index a169a8ec03c..cbdfa45d4f7 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -807,8 +807,15 @@ is given and non-nil, the unwanted frames are iconified instead."
;; Since we can't set a frame's minibuffer status,
;; we might as well omit the parameter altogether.
(let* ((parms (nth 1 parameters))
- (mini (assq 'minibuffer parms)))
- (if mini (setq parms (delq mini parms)))
+ (mini (assq 'minibuffer parms))
+ (name (assq 'name parms))
+ (explicit-name (cdr (assq 'explicit-name parms))))
+ (when mini (setq parms (delq mini parms)))
+ ;; Leave name in iff it was set explicitly.
+ ;; This should fix the behavior reported in
+ ;; http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01632.html
+ (when (and name (not explicit-name))
+ (setq parms (delq name parms)))
parms))
(set-window-configuration (nth 2 parameters)))
(setq frames-to-delete (cons frame frames-to-delete))))))