Fix selecting deleted window error
Caused by focus/unfocus modeline fixes accessing possibly dead buffers.
This commit is contained in:
parent
69e992e54a
commit
d692718ab4
1 changed files with 12 additions and 9 deletions
|
@ -180,18 +180,21 @@ buffers.")
|
||||||
(defvar +modeline-remap-face-cookies nil)
|
(defvar +modeline-remap-face-cookies nil)
|
||||||
|
|
||||||
(defun +modeline|focus-all-windows (&rest _)
|
(defun +modeline|focus-all-windows (&rest _)
|
||||||
(dolist (buf +modeline-remap-face-cookies)
|
(cl-loop for (buffer . cookie) in +modeline-remap-face-cookies
|
||||||
(with-current-buffer (car buf)
|
if (buffer-live-p buffer)
|
||||||
(face-remap-remove-relative (cdr buf)))))
|
do (with-current-buffer buffer
|
||||||
|
(face-remap-remove-relative cookie))))
|
||||||
|
|
||||||
(defun +modeline|unfocus-all-windows (&rest _)
|
(defun +modeline|unfocus-all-windows (&rest _)
|
||||||
(setq +modeline-remap-face-cookies
|
(setq +modeline-remap-face-cookies
|
||||||
(mapcar (lambda (window)
|
(cl-loop for window in (window-list)
|
||||||
(with-current-buffer (window-buffer window)
|
for buffer = (window-buffer window)
|
||||||
(cons (current-buffer)
|
if (buffer-live-p buffer)
|
||||||
(face-remap-add-relative 'mode-line
|
collect
|
||||||
'mode-line-inactive))))
|
(with-current-buffer buffer
|
||||||
(window-list))))
|
(cons buffer
|
||||||
|
(face-remap-add-relative 'mode-line
|
||||||
|
'mode-line-inactive))))))
|
||||||
|
|
||||||
(add-hook 'focus-in-hook #'+modeline|focus-all-windows)
|
(add-hook 'focus-in-hook #'+modeline|focus-all-windows)
|
||||||
(add-hook 'focus-out-hook #'+modeline|unfocus-all-windows)
|
(add-hook 'focus-out-hook #'+modeline|unfocus-all-windows)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue