From 79413be1f0f7373a573432e6bef71b5d1a5754f1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 16 Jun 2018 21:41:39 +0200 Subject: [PATCH] Improve doom modeline focus hooks More reliable deactivation when unfocusing or switching away from Emacs. --- modules/ui/doom-modeline/config.el | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/ui/doom-modeline/config.el b/modules/ui/doom-modeline/config.el index cd686e1bb..c7938c3e4 100644 --- a/modules/ui/doom-modeline/config.el +++ b/modules/ui/doom-modeline/config.el @@ -54,10 +54,18 @@ (force-mode-line-update)) (add-hook 'window-configuration-change-hook #'+doom-modeline|set-selected-window) -(add-hook 'focus-in-hook #'+doom-modeline|set-selected-window) -(add-hook 'focus-out-hook #'+doom-modeline|unset-selected-window) (add-hook 'doom-after-switch-window-hook #'+doom-modeline|set-selected-window) -(add-hook 'doom-after-switch-frame-hook #'+doom-modeline|set-selected-window) +(if (boundp 'after-focus-change-function) + (progn + (add-hook 'focus-in-hook #'+doom-modeline|set-selected-window) + (add-hook 'focus-out-hook #'+doom-modeline|unset-selected-window)) + (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 (frame-selected-window frame))) + (force-mode-line-update)) + (add-function :after after-focus-change-function #'+doom-modeline|refresh-frame)) ;;