mirror of
https://github.com/vale981/doom-modeline
synced 2025-03-04 17:01:39 -05:00
Improve hooks for active windows.
This commit is contained in:
parent
aed094c437
commit
5d55484576
1 changed files with 6 additions and 23 deletions
|
@ -848,34 +848,17 @@ used as an advice to window creation functions."
|
|||
|
||||
(defun doom-modeline-set-selected-window (&rest _)
|
||||
"Set `doom-modeline-current-window' appropriately."
|
||||
(when-let ((win (doom-modeline--get-current-window)))
|
||||
(unless (or (minibuffer-window-active-p win)
|
||||
(and (bound-and-true-p lv-wnd) (eq lv-wnd win)))
|
||||
(setq doom-modeline-current-window win))))
|
||||
(let ((win (doom-modeline--get-current-window)))
|
||||
(setq doom-modeline-current-window
|
||||
(if (minibuffer-window-active-p win)
|
||||
(minibuffer-selected-window)
|
||||
win))))
|
||||
|
||||
(defun doom-modeline-unset-selected-window ()
|
||||
"Unset `doom-modeline-current-window' appropriately."
|
||||
(setq doom-modeline-current-window nil))
|
||||
|
||||
(add-hook 'after-make-frame-functions #'doom-modeline-set-selected-window)
|
||||
(add-hook 'buffer-list-update-hook #'doom-modeline-set-selected-window)
|
||||
(add-hook 'window-configuration-change-hook #'doom-modeline-set-selected-window)
|
||||
(add-hook 'window-selection-change-functions #'doom-modeline-set-selected-window)
|
||||
(add-hook 'exwm-workspace-switch-hook #'doom-modeline-set-selected-window)
|
||||
(with-no-warnings
|
||||
(if (boundp 'after-focus-change-function)
|
||||
(progn
|
||||
(defun doom-modeline-refresh-frame ()
|
||||
(setq doom-modeline-current-window nil)
|
||||
(cl-loop for frame in (frame-list)
|
||||
if (eq (frame-focus-state frame) t)
|
||||
return (setq doom-modeline-current-window
|
||||
(doom-modeline--get-current-window frame)))
|
||||
(force-mode-line-update))
|
||||
(add-function :after after-focus-change-function #'doom-modeline-refresh-frame))
|
||||
(progn
|
||||
(add-hook 'focus-in-hook #'doom-modeline-set-selected-window)
|
||||
(add-hook 'focus-out-hook #'doom-modeline-unset-selected-window))))
|
||||
(add-hook 'pre-redisplay-functions #'doom-modeline-set-selected-window)
|
||||
|
||||
;; Ensure modeline is inactive when Emacs is unfocused (and active otherwise)
|
||||
(defvar doom-modeline-remap-face-cookie nil)
|
||||
|
|
Loading…
Add table
Reference in a new issue