diff lisp/frame.el @ 83444:00c55c52afd8

Make all frames created in an emacsclient session belong to that client. * lisp/frame.el (make-frame): Also inherit 'client parameter. Don't override explicitly specified values with inherited ones. * server.el (server-delete-client): Delete frames after deleting the tty. Clear 'client parameter before deleting a frame. * server.el (server-handle-delete-frame): Delete the client if this was its last frame. * startup.el (fancy-splash-default-action): Fix typo in comment. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-484
author Karoly Lorentey <lorentey@elte.hu>
date Mon, 02 Jan 2006 07:50:53 +0000
parents 76396de7f50a
children b98066f4aa10
line wrap: on
line diff
--- a/lisp/frame.el	Mon Jan 02 07:43:46 2006 +0000
+++ b/lisp/frame.el	Mon Jan 02 07:50:53 2006 +0000
@@ -681,13 +681,16 @@
     (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)
-    ;; Set up the frame-local environment, if needed.
+    ;; Inherit the 'environment and 'client parameters, if needed.
     (when (eq (frame-terminal frame) (frame-terminal oldframe))
-      (let ((env (frame-parameter oldframe 'environment)))
+      (let ((env (frame-parameter oldframe 'environment))
+	    (client (frame-parameter oldframe 'client)))
 	(if (not (framep env))
 	    (setq env oldframe))
-	(if env
-	    (set-frame-parameter frame 'environment env))))
+	(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))))
     (run-hook-with-args 'after-make-frame-functions frame)
     frame))