From 30088515384d17657efe175505d7542380b1ab64 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Thu, 6 Jul 2006 22:48:16 +0000 Subject: [PATCH] * server.el (server-select-display): Don't make the temp frame minibuffer-only, in case it's not a temp frame. (server-process-filter): Don't delete the temp frame if it's the only one we have on that display. --- lisp/ChangeLog | 5 +++++ lisp/server.el | 22 ++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 73f4292c6ed..9c1cbbcf949 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2006-07-06 Chong Yidong + * server.el (server-select-display): Don't make the temp frame + minibuffer-only, in case it's not a temp frame. + (server-process-filter): Don't delete the temp frame if it's the + only one we have on that display. + * files.el (find-alternate-file): Doc fix. 2006-07-05 Richard Stallman diff --git a/lisp/server.el b/lisp/server.el index 266d9d7824f..fc0f90f6f05 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -203,18 +203,14 @@ are done with it in the server.") (dolist (frame (frame-list)) (when (equal (frame-parameter frame 'display) display) (select-frame frame))) - ;; If there's no frame on that display yet, create a dummy one - ;; and select it. + ;; If there's no frame on that display yet, create and select one. (unless (equal (frame-parameter (selected-frame) 'display) display) (select-frame (make-frame-on-display display - ;; This frame is only there in place of an actual "current display" - ;; setting, so we want it to be as unobtrusive as possible. That's - ;; what the invisibility is for. The minibuffer setting is so that - ;; we don't end up displaying a buffer in it (which noone would - ;; notice). - '((visibility . nil) (minibuffer . only))))))) + ;; This frame may be deleted later (see server-process-filter) + ;; so we want it to be as unobtrusive as possible. + '((visibility . nil))))))) (defun server-unquote-arg (arg) (replace-regexp-in-string @@ -383,8 +379,14 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"." (unless nowait (message "%s" (substitute-command-keys "When done with a buffer, type \\[server-edit]"))))) - ;; Avoid preserving the connection after the last real frame is deleted. - (if tmp-frame (delete-frame tmp-frame)))) + ;; If the temporary frame is still the selected frame, make it + ;; real. If not (which can happen if the user's customizations + ;; call pop-to-buffer etc.), delete it to avoid preserving the + ;; connection after the last real frame is deleted. + (if tmp-frame + (if (eq (selected-frame) tmp-frame) + (set-frame-parameter tmp-frame 'visibility t) + (delete-frame tmp-frame))))) ;; Save for later any partial line that remains. (when (> (length string) 0) (process-put proc 'previous-string string))) -- 2.39.2