summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-01-12 23:24:31 -0500
committerChong Yidong <cyd@stupidchicken.com>2011-01-12 23:24:31 -0500
commit5399653b53f7b74decc75402bddd5f979516fcbe (patch)
treec5ad9a3cd8b366b9f71ed0282347be6d7dbb9cba
parent07ee9351461ff93feabd66f36ccfdc0ff7b5dcfc (diff)
downloademacs-5399653b53f7b74decc75402bddd5f979516fcbe.tar.gz
* message.el (message-bury): Add special-case handling for Rmail.
This should not be merged into the trunk.
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/message.el28
2 files changed, 28 insertions, 4 deletions
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 <cyd@stupidchicken.com>
+
+ * message.el (message-bury): Add special-case handling for Rmail.
+
2011-01-12 Glenn Morris <rgm@gnu.org>
* 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.