mu4e-compose: tweak buffer handler, add display-buffer
Add 'display-buffer as an option for mu4e-compose-switch, which lets you use the display-buffer function for display. Remove the mu4e-message-kill-buffer, simply use message-kill-buffer.
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
;;; mu4e-compose.el --- Compose and send messages -*- lexical-binding: t -*-
|
;;; mu4e-compose.el --- Compose and send messages -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Copyright (C) 2011-2023 Dirk-Jan C. Binnema
|
;; Copyright (C) 2011-2024 Dirk-Jan C. Binnema
|
||||||
|
|
||||||
;; Author: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
;; Author: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
||||||
;; Maintainer: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
;; Maintainer: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
||||||
@ -77,6 +77,8 @@ A symbol:
|
|||||||
- nil : default (new buffer)
|
- nil : default (new buffer)
|
||||||
- window : compose in new window
|
- window : compose in new window
|
||||||
- frame or t : compose in new frame
|
- frame or t : compose in new frame
|
||||||
|
- display-buffer: use display-buffer / display-buffer-alist
|
||||||
|
(for fine-tuning).
|
||||||
|
|
||||||
For backward compatibility with `mu4e-compose-in-new-frame', t is
|
For backward compatibility with `mu4e-compose-in-new-frame', t is
|
||||||
treated as =\\'frame."
|
treated as =\\'frame."
|
||||||
@ -452,22 +454,6 @@ appropriate flag at the message forwarded or replied-to."
|
|||||||
"Function called just after sending a message."
|
"Function called just after sending a message."
|
||||||
(setq mu4e-sent-func #'mu4e-sent-handler)
|
(setq mu4e-sent-func #'mu4e-sent-handler)
|
||||||
(mu4e--server-sent (buffer-file-name)))
|
(mu4e--server-sent (buffer-file-name)))
|
||||||
|
|
||||||
;; (defun mu4e-message-kill-buffer ()
|
|
||||||
;; "Wrapper around `message-kill-buffer'.
|
|
||||||
;; It attempts to restore some mu4e window layout after killing the
|
|
||||||
;; compose-buffer."
|
|
||||||
;; (interactive)
|
|
||||||
;; (let ((view (save-selected-window (mu4e-get-view-buffer)))
|
|
||||||
;; (hdrs (mu4e-get-headers-buffer)))
|
|
||||||
;; (message-kill-buffer)
|
|
||||||
;; ;; try to go back to some mu window if it is live; otherwise do nothing.
|
|
||||||
;; (if (buffer-live-p view)
|
|
||||||
;; (switch-to-buffer view)
|
|
||||||
;; (when (and (buffer-live-p hdrs))
|
|
||||||
;; (switch-to-buffer hdrs)))))
|
|
||||||
|
|
||||||
(defalias 'mu4e-message-kill-buffer 'message-kill-buffer)
|
|
||||||
|
|
||||||
;;; Crypto
|
;;; Crypto
|
||||||
(defun mu4e--compose-setup-crypto (parent compose-type)
|
(defun mu4e--compose-setup-crypto (parent compose-type)
|
||||||
@ -530,7 +516,6 @@ buffers; lets remap its faces so it uses the ones for mu4e."
|
|||||||
(set-keymap-parent map message-mode-map)
|
(set-keymap-parent map message-mode-map)
|
||||||
(define-key map (kbd "C-S-u") #'mu4e-update-mail-and-index)
|
(define-key map (kbd "C-S-u") #'mu4e-update-mail-and-index)
|
||||||
(define-key map (kbd "C-c C-u") #'mu4e-update-mail-and-index)
|
(define-key map (kbd "C-c C-u") #'mu4e-update-mail-and-index)
|
||||||
(define-key map [remap message-kill-buffer] #'mu4e-message-kill-buffer)
|
|
||||||
;; remove some unsupported commands... [remap ..] does not work here
|
;; remove some unsupported commands... [remap ..] does not work here
|
||||||
;; XXX remove from menu, too.
|
;; XXX remove from menu, too.
|
||||||
(define-key map (kbd "C-c C-f C-n") nil) ;; message-goto-newsgroups
|
(define-key map (kbd "C-c C-f C-n") nil) ;; message-goto-newsgroups
|
||||||
@ -643,6 +628,7 @@ Based on the value of `mu4e-compose-switch'."
|
|||||||
('nil #'switch-to-buffer)
|
('nil #'switch-to-buffer)
|
||||||
('window #'switch-to-buffer-other-window)
|
('window #'switch-to-buffer-other-window)
|
||||||
((or 'frame 't) #'switch-to-buffer-other-frame)
|
((or 'frame 't) #'switch-to-buffer-other-frame)
|
||||||
|
('display-buffer #'display-buffer)
|
||||||
;; t for backward compatibility with mu4e-compose-in-new-frame
|
;; t for backward compatibility with mu4e-compose-in-new-frame
|
||||||
(_ (mu4e-error "Invalid mu4e-compose-switch"))))
|
(_ (mu4e-error "Invalid mu4e-compose-switch"))))
|
||||||
|
|
||||||
@ -769,20 +755,17 @@ Optionally, SWITCH determines how to find a buffer for the message
|
|||||||
(mu4e-message-at-point)))
|
(mu4e-message-at-point)))
|
||||||
(mu4e-compose-parent-message parent)
|
(mu4e-compose-parent-message parent)
|
||||||
(mu4e-compose-type compose-type)
|
(mu4e-compose-type compose-type)
|
||||||
(oldframe (selected-frame))
|
(oldframe (selected-frame)))
|
||||||
(buf))
|
|
||||||
(advice-add 'message-is-yours-p :around #'mu4e--message-is-yours-p)
|
(advice-add 'message-is-yours-p :around #'mu4e--message-is-yours-p)
|
||||||
(run-hooks 'mu4e-compose-pre-hook) ;; run the pre-hook. Still useful?
|
(run-hooks 'mu4e-compose-pre-hook) ;; run the pre-hook. Still useful?
|
||||||
(mu4e--context-autoswitch parent mu4e-compose-context-policy)
|
(mu4e--context-autoswitch parent mu4e-compose-context-policy)
|
||||||
(with-current-buffer
|
(with-current-buffer
|
||||||
(mu4e--compose-setup-buffer compose-type compose-func parent)
|
(mu4e--compose-setup-buffer compose-type compose-func parent)
|
||||||
(funcall (or switch (mu4e--compose-switch-function)) (current-buffer))
|
|
||||||
(unless (eq compose-type 'edit)
|
(unless (eq compose-type 'edit)
|
||||||
(set-visited-file-name ;; make it a draft file
|
(set-visited-file-name ;; make it a draft file
|
||||||
(mu4e--draft-message-path (mu4e--message-basename) parent)))
|
(mu4e--draft-message-path (mu4e--message-basename) parent)))
|
||||||
(mu4e--compose-setup-post compose-type parent)
|
(mu4e--compose-setup-post compose-type parent)
|
||||||
(setq buf (current-buffer))
|
(funcall (or switch (mu4e--compose-switch-function)) (current-buffer))
|
||||||
(switch-to-buffer buf)
|
|
||||||
(let* ((msgframe (selected-frame))
|
(let* ((msgframe (selected-frame))
|
||||||
(actions (list
|
(actions (list
|
||||||
(lambda () ;; kill frame when it was created for this
|
(lambda () ;; kill frame when it was created for this
|
||||||
@ -910,7 +893,7 @@ The message is resent as-is, without any editing. "
|
|||||||
(define-mail-user-agent 'mu4e-user-agent
|
(define-mail-user-agent 'mu4e-user-agent
|
||||||
#'mu4e-compose-mail
|
#'mu4e-compose-mail
|
||||||
#'message-send-and-exit
|
#'message-send-and-exit
|
||||||
#'mu4e-message-kill-buffer
|
#'message-kill-buffer
|
||||||
'message-send-hook)
|
'message-send-hook)
|
||||||
|
|
||||||
;; Without this, `mail-user-agent' cannot be set to `mu4e-user-agent'
|
;; Without this, `mail-user-agent' cannot be set to `mu4e-user-agent'
|
||||||
|
|||||||
Reference in New Issue
Block a user