emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100376: * message.el (message-bur


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100376: * message.el (message-bury): Add special-case handling for Rmail.
Date: Wed, 12 Jan 2011 23:24:31 -0500
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100376
committer: Chong Yidong <address@hidden>
branch nick: emacs-23
timestamp: Wed 2011-01-12 23:24:31 -0500
message:
  * message.el (message-bury): Add special-case handling for Rmail.
  This should not be merged into the trunk.
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/message.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2011-01-12 03:53:28 +0000
+++ b/lisp/gnus/ChangeLog       2011-01-13 04:24:31 +0000
@@ -1,3 +1,7 @@
+2011-01-13  Chong Yidong  <address@hidden>
+
+       * message.el (message-bury): Add special-case handling for Rmail.
+
 2011-01-12  Glenn Morris  <address@hidden>
 
        * message.el (message-mail): A compose-mail function should

=== modified file 'lisp/gnus/message.el'
--- a/lisp/gnus/message.el      2011-01-12 03:53:28 +0000
+++ b/lisp/gnus/message.el      2011-01-13 04:24:31 +0000
@@ -4023,12 +4023,32 @@
 
 (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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]