From 40aa4c27cb7cac7ef2ff7a88c504cc2ae42da194 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Fri, 12 Oct 2007 08:49:20 +0000 Subject: [PATCH] (set-frame-configuration): Assign name parameter only if it has been set explicitly before. --- admin/FOR-RELEASE | 5 ----- lisp/ChangeLog | 3 +++ lisp/frame.el | 11 +++++++++-- src/macfns.c | 10 +--------- src/w32fns.c | 10 +--------- src/xfns.c | 10 +--------- 6 files changed, 15 insertions(+), 34 deletions(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 6cc5333cf3d..f31c4d07b7b 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -71,11 +71,6 @@ http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00138.html http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01793.html [jpw@pobox.com has a patch] -** Frame title no more updated after calling `set-frame-configuration' -Report by Sebastien Rocca Serra on emacs-devel -from 2007-08-30. [martin rudalics has a patch] -http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01632.html - * FIXES FOR EMACS 22.3 Here we list any small fixes that arrived too late for Emacs 22.2, but diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9fd351ce200..0f166360b10 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2007-10-12 Martin Rudalics + * frame.el (set-frame-configuration): Assign name parameter only + if it has been set explicitly before. + * window.el (handle-select-window): Revert part of 2007-10-06 change setting the input focus. 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)))))) diff --git a/src/macfns.c b/src/macfns.c index 8dff77cd5fd..1139158f165 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -1855,15 +1855,7 @@ x_implicitly_set_name (f, arg, oldval) } /* Change the title of frame F to NAME. - If NAME is nil, use the frame name as the title. - - If EXPLICIT is non-zero, that indicates that lisp code is setting the - name; if NAME is a string, set F's name to NAME and set - F->explicit_name; if NAME is Qnil, then clear F->explicit_name. - - If EXPLICIT is zero, that indicates that Emacs redisplay code is - suggesting a new name, which lisp code should override; if - F->explicit_name is set, ignore the new name; otherwise, set it. */ + If NAME is nil, use the frame name as the title. */ void x_set_title (f, name, old_name) diff --git a/src/w32fns.c b/src/w32fns.c index d260b0d9be9..e8a2dc913de 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -1937,15 +1937,7 @@ x_implicitly_set_name (f, arg, oldval) } /* Change the title of frame F to NAME. - If NAME is nil, use the frame name as the title. - - If EXPLICIT is non-zero, that indicates that lisp code is setting the - name; if NAME is a string, set F's name to NAME and set - F->explicit_name; if NAME is Qnil, then clear F->explicit_name. - - If EXPLICIT is zero, that indicates that Emacs redisplay code is - suggesting a new name, which lisp code should override; if - F->explicit_name is set, ignore the new name; otherwise, set it. */ + If NAME is nil, use the frame name as the title. */ void x_set_title (f, name, old_name) diff --git a/src/xfns.c b/src/xfns.c index 80f21411890..13672736849 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1764,15 +1764,7 @@ x_implicitly_set_name (f, arg, oldval) } /* Change the title of frame F to NAME. - If NAME is nil, use the frame name as the title. - - If EXPLICIT is non-zero, that indicates that lisp code is setting the - name; if NAME is a string, set F's name to NAME and set - F->explicit_name; if NAME is Qnil, then clear F->explicit_name. - - If EXPLICIT is zero, that indicates that Emacs redisplay code is - suggesting a new name, which lisp code should override; if - F->explicit_name is set, ignore the new name; otherwise, set it. */ + If NAME is nil, use the frame name as the title. */ void x_set_title (f, name, old_name) -- 2.11.4.GIT