summaryrefslogtreecommitdiff
path: root/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'init.el')
-rw-r--r--init.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/init.el b/init.el
index 46065ba..d659e32 100644
--- a/init.el
+++ b/init.el
@@ -973,6 +973,24 @@
(magit-change-popup-key 'magit-branch-popup :action
?s ?v)
+ (defun km/magit-mode-kill-hidden (mode)
+ (let ((buffer (magit-mode-get-buffer mode)))
+ (unless (or (not buffer)
+ (get-buffer-window buffer)
+ (derived-mode-p mode))
+ (kill-buffer buffer))))
+
+ (advice-add 'magit-log-popup
+ :before
+ (lambda (&rest _)
+ (km/magit-mode-kill-hidden 'magit-log-mode))
+ '((name . "magit-log-kill-previous")))
+ (advice-add 'magit-diff-popup
+ :before
+ (lambda (&rest _)
+ (km/magit-mode-kill-hidden 'magit-diff-mode))
+ '((name . "magit-diff-kill-previous")))
+
(advice-add 'magit-git-fetch
:around
(lambda (fn &rest args)