From d98e78548ca7888157b6b54feaa24c42c06a9f18 Mon Sep 17 00:00:00 2001 From: djcb Date: Wed, 13 Jun 2018 14:48:22 +0300 Subject: [PATCH] mu4e: re-draw speedbar when context changes Folders may have changed. --- mu4e/mu4e-context.el | 6 ++++++ mu4e/mu4e-speedbar.el | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/mu4e/mu4e-context.el b/mu4e/mu4e-context.el index feaa4d6f..68ea3159 100644 --- a/mu4e/mu4e-context.el +++ b/mu4e/mu4e-context.el @@ -33,6 +33,11 @@ (defvar mu4e-contexts nil "The list of `mu4e-context' objects describing mu4e's contexts.") +(defcustom mu4e-context-changed-hook nil + "Hook run just *after* the context changed." + :type 'hook + :group 'mu4e-headers) + (defvar mu4e~context-current nil "The current context; for internal use. Use `mu4e-context-switch' to change it.") @@ -117,6 +122,7 @@ non-nil." (setq mu4e~context-current context) (unless (eq mu4e-split-view 'single-window) (mu4e~main-view-real nil nil)) + (run-hooks 'mu4e-context-changed-hook) (mu4e-message "Switched context to %s" (mu4e-context-name context))) context)) diff --git a/mu4e/mu4e-speedbar.el b/mu4e/mu4e-speedbar.el index ad370a20..e36eca99 100644 --- a/mu4e/mu4e-speedbar.el +++ b/mu4e/mu4e-speedbar.el @@ -1,6 +1,6 @@ ;;; mu4e-speedbar --- Speedbar support for mu4e -;; Copyright (C) 2012-2016 Antono Vasiljev, Dirk-Jan C. Binnema +;; Copyright (C) 2012-2018 Antono Vasiljev, Dirk-Jan C. Binnema ;; ;; Author: Antono Vasiljev ;; Version: 0.1 @@ -34,6 +34,7 @@ (require 'speedbar) (require 'mu4e-vars) (require 'mu4e-headers) +(require 'mu4e-context) (require 'mu4e-utils) (defvar mu4e-main-speedbar-key-map nil @@ -53,6 +54,7 @@ (defun mu4e-speedbar-install-variables () "Install those variables used by speedbar to enhance mu4e." + (add-hook 'mu4e-context-changed-hook 'mu4e~speedbar-render-maildir-list) (dolist (keymap '( mu4e-main-speedbar-key-map mu4e-headers-speedbar-key-map @@ -62,7 +64,6 @@ (define-key keymap "RET" 'speedbar-edit-line) (define-key keymap "e" 'speedbar-edit-line)))) - ;; Make sure our special speedbar major mode is loaded (if (featurep 'speedbar) (mu4e-speedbar-install-variables) @@ -104,7 +105,7 @@ (mu4e-headers-search token current-prefix-arg))) ;;;###autoload -(defun mu4e-speedbar-buttons (buffer) +(defun mu4e-speedbar-buttons (&optional buffer) "Create buttons for any mu4e BUFFER." (interactive) (erase-buffer) @@ -116,10 +117,9 @@ (insert (propertize " Maildirs\n" 'face 'mu4e-title-face)) (mu4e~speedbar-render-maildir-list)) -(defun mu4e-main-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) -(defun mu4e-headers-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) -(defun mu4e-view-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) - +(defun mu4e-main-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) +(defun mu4e-headers-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) +(defun mu4e-view-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) (provide 'mu4e-speedbar) ;;; mu4e-speedbar.el ends here