From d692718ab41d1571331e67e363ad7572048b7cbf Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 12 Aug 2018 18:25:09 +0200 Subject: [PATCH] Fix selecting deleted window error Caused by focus/unfocus modeline fixes accessing possibly dead buffers. --- modules/ui/modeline/config.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/ui/modeline/config.el b/modules/ui/modeline/config.el index d4fd16ee8..0df7c38e4 100644 --- a/modules/ui/modeline/config.el +++ b/modules/ui/modeline/config.el @@ -180,18 +180,21 @@ buffers.") (defvar +modeline-remap-face-cookies nil) (defun +modeline|focus-all-windows (&rest _) - (dolist (buf +modeline-remap-face-cookies) - (with-current-buffer (car buf) - (face-remap-remove-relative (cdr buf))))) + (cl-loop for (buffer . cookie) in +modeline-remap-face-cookies + if (buffer-live-p buffer) + do (with-current-buffer buffer + (face-remap-remove-relative cookie)))) (defun +modeline|unfocus-all-windows (&rest _) (setq +modeline-remap-face-cookies - (mapcar (lambda (window) - (with-current-buffer (window-buffer window) - (cons (current-buffer) - (face-remap-add-relative 'mode-line - 'mode-line-inactive)))) - (window-list)))) + (cl-loop for window in (window-list) + for buffer = (window-buffer window) + if (buffer-live-p buffer) + collect + (with-current-buffer buffer + (cons buffer + (face-remap-add-relative 'mode-line + 'mode-line-inactive)))))) (add-hook 'focus-in-hook #'+modeline|focus-all-windows) (add-hook 'focus-out-hook #'+modeline|unfocus-all-windows)