[PATCH] emacs: Switch mode before pop-to-buffer

Subject: [PATCH] emacs: Switch mode before pop-to-buffer

Date: Thu, 5 Mar 2026 23:33:55 +0100

To: notmuch@notmuchmail.org

Cc: Aurelien Rouene

From: Aurelien Rouene


When showing an email using notmuch-show-mode, set the mode
"notmuch-show-mode" before using "pop-to-buffer-same-window", to be
able to match on the major-mode with an entry in "display-buffer-alist".

Using the major mode is the the only mean to set display rules,
because the buffer title is set to the title of the email and is not fixed.

Signed-off-by: Aurelien Rouene <aurelien@rouene.fr>
---
 emacs/notmuch-show.el | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 19b51753..883516fa 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -1400,15 +1400,17 @@ function is used.
 Returns the buffer containing the messages, or NIL if no messages
 matched."
   (interactive "sNotmuch show: \nP")
-  (let ((buffer-name (generate-new-buffer-name
-		      (or buffer-name
-			  (concat "*notmuch-" thread-id "*"))))
-	(mm-inline-override-types (notmuch--inline-override-types)))
+  (let* ((buffer-name (generate-new-buffer-name
+		       (or buffer-name
+			   (concat "*notmuch-" thread-id "*"))))
+	 (buffer (get-buffer-create buffer-name))
+	 (mm-inline-override-types (notmuch--inline-override-types)))
 
-    (pop-to-buffer-same-window (get-buffer-create buffer-name))
+    (with-current-buffer buffer
+      (notmuch-show-mode))
+    (pop-to-buffer-same-window buffer)
     ;; No need to track undo information for this buffer.
     (setq buffer-undo-list t)
-    (notmuch-show-mode)
     ;; Set various buffer local variables to their appropriate initial
     ;; state. Do this after enabling `notmuch-show-mode' so that they
     ;; aren't wiped out.
-- 
2.53.0

_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: