aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Rudalics2012-02-08 09:02:17 +0100
committerMartin Rudalics2012-02-08 09:02:17 +0100
commitffb6157eccc8e08ae5c5ea3bb81136ad5bad4d29 (patch)
treeb96f911022aff2b30a778acfa9c5127ae63756bd
parente74e58c91f18d5657c3a9df67ab3861eaec9d2d0 (diff)
downloademacs-ffb6157eccc8e08ae5c5ea3bb81136ad5bad4d29.tar.gz
emacs-ffb6157eccc8e08ae5c5ea3bb81136ad5bad4d29.zip
In server-unselect-display don't inadvertently kill current buffer. (Bug#10729)
* server.el (server-unselect-display): Don't inadvertently kill the current buffer. (Bug#10729)
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/server.el22
2 files changed, 17 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9cda0d38acb..06f55e23e24 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12012-02-08 Martin Rudalics <rudalics@gmx.at>
2
3 * server.el (server-unselect-display): Don't inadvertently kill
4 the current buffer. (Bug#10729)
5
12012-02-08 Glenn Morris <rgm@gnu.org> 62012-02-08 Glenn Morris <rgm@gnu.org>
2 7
3 * progmodes/sql.el (sql-port, sql-connection-alist, sql-list-all) 8 * progmodes/sql.el (sql-port, sql-connection-alist, sql-list-all)
diff --git a/lisp/server.el b/lisp/server.el
index a08f971e88c..79858e6d83e 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -399,16 +399,18 @@ If CLIENT is non-nil, add a description of it to the logged message."
399 ;; visible. If not (which can happen if the user's customizations call 399 ;; visible. If not (which can happen if the user's customizations call
400 ;; pop-to-buffer etc.), delete it to avoid preserving the connection after 400 ;; pop-to-buffer etc.), delete it to avoid preserving the connection after
401 ;; the last real frame is deleted. 401 ;; the last real frame is deleted.
402 (if (and (eq (frame-first-window frame) 402
403 (next-window (frame-first-window frame) 'nomini)) 403 ;; Rewritten to avoid inadvertently killing the current buffer after
404 (eq (window-buffer (frame-first-window frame)) 404 ;; `delete-frame' removed FRAME (Bug#10729).
405 (frame-parameter frame 'server-dummy-buffer))) 405 (let ((buffer (frame-parameter frame 'server-dummy-buffer)))
406 ;; The temp frame still only shows one buffer, and that is the 406 (if (and (one-window-p 'nomini frame)
407 ;; internal temp buffer. 407 (eq (window-buffer (frame-first-window frame)) buffer))
408 (delete-frame frame) 408 ;; The temp frame still only shows one buffer, and that is the
409 (set-frame-parameter frame 'visibility t)) 409 ;; internal temp buffer.
410 (kill-buffer (frame-parameter frame 'server-dummy-buffer)) 410 (delete-frame frame)
411 (set-frame-parameter frame 'server-dummy-buffer nil))) 411 (set-frame-parameter frame 'visibility t)
412 (set-frame-parameter frame 'server-dummy-buffer nil))
413 (kill-buffer buffer))))
412 414
413(defun server-handle-delete-frame (frame) 415(defun server-handle-delete-frame (frame)
414 "Delete the client connection when the emacsclient frame is deleted. 416 "Delete the client connection when the emacsclient frame is deleted.