From: Chong Yidong Date: Thu, 13 Jan 2011 04:24:31 +0000 (-0500) Subject: * message.el (message-bury): Add special-case handling for Rmail. X-Git-Tag: emacs-pretest-23.2.92~4^2~1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5399653b53f7b74decc75402bddd5f979516fcbe;p=emacs.git * message.el (message-bury): Add special-case handling for Rmail. This should not be merged into the trunk. --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 6a363c0b4f1..eecbe978c29 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2011-01-13 Chong Yidong + + * message.el (message-bury): Add special-case handling for Rmail. + 2011-01-12 Glenn Morris * message.el (message-mail): A compose-mail function should diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 0ea0df46060..63fcf500189 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -4023,12 +4023,32 @@ Instead, just auto-save the buffer and then bury it." (defun message-bury (buffer) "Bury this mail BUFFER." - (let ((newbuf (other-buffer buffer))) - (bury-buffer buffer) - (if (and (window-dedicated-p (selected-window)) + (let ((newbuf (other-buffer (current-buffer)))) + (bury-buffer (current-buffer)) + (if (and (window-dedicated-p (frame-selected-window)) (not (null (delq (selected-frame) (visible-frame-list))))) (delete-frame (selected-frame)) - (switch-to-buffer newbuf)))) + ;; Temporary hack to make this behave like `mail-bury', when + ;; used with Rmail. Replaced in Emacs 24 with + (let (rmail-flag summary-buffer) + (and (not (one-window-p)) + (with-current-buffer + (window-buffer (next-window (selected-window) 'not)) + (setq rmail-flag (eq major-mode 'rmail-mode)) + (setq summary-buffer + (and (if (boundp 'mail-bury-selects-summary) + mail-bury-selects-summary + t) + (boundp 'rmail-summary-buffer) + rmail-summary-buffer + (buffer-name rmail-summary-buffer) + (not (get-buffer-window rmail-summary-buffer)) + rmail-summary-buffer)))) + (if rmail-flag + ;; If the Rmail buffer has a summary, show that. + (if summary-buffer (switch-to-buffer summary-buffer) + (delete-window)) + (switch-to-buffer newbuf)))))) (defun message-send (&optional arg) "Send the message in the current buffer.