aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/FOR-RELEASE5
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/frame.el11
-rw-r--r--src/macfns.c10
-rw-r--r--src/w32fns.c10
-rw-r--r--src/xfns.c10
6 files changed, 15 insertions, 34 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 6cc5333cf3..f31c4d07b7 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
[[email protected] has a patch]
-** Frame title no more updated after calling `set-frame-configuration'
-Report by Sebastien Rocca Serra <[email protected]> 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 9fd351ce20..0f166360b1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2007-10-12 Martin Rudalics <[email protected]>
+ * 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 a169a8ec03..cbdfa45d4f 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 8dff77cd5f..1139158f16 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 d260b0d9be..e8a2dc913d 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 80f2141189..1367273684 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)