From a096da2881140687bfb894a023602f49876adb5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20de=20Beauch=C3=AAne?= Date: Wed, 7 Nov 2018 01:44:48 +0100 Subject: [PATCH] fix bug mode-line not reset after multiple invocations Fix a bug where the mode-line would not get rid of or regain the winum segment after winum-mode being activated several times non-interactively and then deactivated. --- winum.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/winum.el b/winum.el index ad63cef..f579929 100644 --- a/winum.el +++ b/winum.el @@ -418,7 +418,9 @@ POSITION: position in the mode-line." (push winum--mode-line-segment res)) (while mode-line (push (pop mode-line) res)) - (setq-default mode-line-format (nreverse res))) + (let ((nres (nreverse res))) + (setq mode-line-format nres) + (setq-default mode-line-format nres))) (force-mode-line-update t)) (defun winum--clear-mode-line () @@ -430,7 +432,9 @@ POSITION: position in the mode-line." (unless (equal item winum--mode-line-segment) (push item res))) (pop mode-line)) - (setq-default mode-line-format (nreverse res))) + (let ((nres (nreverse res))) + (setq mode-line-format nres) + (setq-default mode-line-format nres))) (force-mode-line-update t)) (defun winum--update ()