aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew White <mehw.is.me@inventati.org>2021-06-18 16:15:45 +0200
committerMatthew White <mehw.is.me@inventati.org>2021-07-09 00:23:31 +0200
commit6e1d64ce2c3dfb3a0ff721aed80d35fd47f89522 (patch)
tree3b3509cc8d31a7e0e7f56666de6e5592c6852f61
parent7d129ff6bfe36c05721032a6d4c1cc9ef8177548 (diff)
persp-mode: properly restore header-line-format default value
Do not use the buffer local value of 'header-line-format' when setting its default value upon disabling 'persp-mode'. This solves a weird behavior. Disabling 'persp-mode' sets the default value of 'header-line-format' to the buffer local value. i.e. turning off 'persp-mode' while in *Buffer List* will set the header of buffers which do not use a local value to the same header of *Buffer List*.
-rw-r--r--perspective.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/perspective.el b/perspective.el
index 9827f93..24649ee 100644
--- a/perspective.el
+++ b/perspective.el
@@ -1101,10 +1101,11 @@ named collections of buffers and window configurations."
(setq read-buffer-function nil)
(set-frame-parameter nil 'persp--hash nil)
(setq global-mode-string (delete '(:eval (persp-mode-line)) global-mode-string))
- (set-default 'header-line-format (delete '(:eval (persp-mode-line)) header-line-format))
- (unless (delete "" header-line-format)
- ;; need to set header-line-format to nil to completely remove the header from the buffer
- (set-default 'header-line-format nil))))
+ (let ((default-header-line-format (default-value 'header-line-format)))
+ (set-default 'header-line-format (delete '(:eval (persp-mode-line)) default-header-line-format))
+ (unless (delete "" default-header-line-format)
+ ;; need to set header-line-format to nil to completely remove the header from the buffer
+ (set-default 'header-line-format nil)))))
(defun persp-init-frame (frame)
"Initialize the perspectives system in FRAME.