Mercurial > emacs
diff lisp/server.el @ 71650:dcb7e8b2f7b3
* 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.
| author | Chong Yidong <cyd@stupidchicken.com> |
|---|---|
| date | Thu, 06 Jul 2006 22:48:16 +0000 |
| parents | 59c8b05c2ce4 |
| children | fa022f5f8164 2d56e13fd23d 8a8e69664178 |
line wrap: on
line diff
--- a/lisp/server.el Thu Jul 06 13:55:49 2006 +0000 +++ b/lisp/server.el Thu Jul 06 22:48:16 2006 +0000 @@ -203,18 +203,14 @@ (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 @@ (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)))
