summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modeline.el99
1 files changed, 52 insertions, 47 deletions
diff --git a/modeline.el b/modeline.el
index a505733..52ae9af 100644
--- a/modeline.el
+++ b/modeline.el
@@ -169,53 +169,58 @@ MAP is the local keymap of the text."
;; NOTE: I tried to avoid this, but it turns out that this is the most
;; reliable way to do so.
-;;;###autoload
-(defun modeline-get-active-window (&optional frame)
- "The active window excluding the child windows."
- (cond
- ((and (fboundp #'frame-parent) (frame-parent frame))
- (frame-selected-window (frame-parent frame)))
- ((frame-selected-window frame))))
-
-;;;###autoload
-(defvar modeline-active-window (modeline-get-active-window)
- "The active window excluding the child windows.")
-
-;;;###autoload
-(defun modeline-active-window-p ()
- "Whether we are in the active window."
- (and modeline-active-window
- (eq modeline-active-window (selected-window))))
-
-;;;###autoload
-(defun modeline-set-active-window (&rest _)
- "Update `modeline-active-window'."
- (let ((active-wn (modeline-get-active-window)))
- (cond
- ((minibuffer-window-active-p active-wn))
- (t (setq modeline-active-window active-wn))))
- (force-mode-line-update t))
-
-;;;###autoload
-(defsubst modeline-unset-active-window (&rest _)
- "Set `modeline-active-window' to `nil'."
- (setq modeline-active-window nil))
-
-;;;###autoload
-(defun modeline-refresh-modeline ()
- "Refresh the focus state of the mode line."
- (setq modeline-active-window nil)
- (mapc (lambda (frame)
- (cond ((eq (frame-focus-state frame) t)
- (setq modeline-active-window (modeline-get-active-window frame)))))
- (frame-list)))
-
-(add-hook 'window-configuration-change-hook #'modeline-set-active-window)
-(add-hook 'buffer-list-update-hook #'modeline-set-active-window)
-(add-hook 'after-make-frame-functions #'modeline-set-active-window)
-(add-hook 'delete-frame-functions #'modeline-set-active-window)
-(advice-add #'handle-switch-frame :after #'modeline-set-active-window)
-(add-function :after after-focus-change-function #'modeline-refresh-modeline)
+;; NOTE: Emacs-29 adds the function `mode-line-window-selected-p'
+;; which does what I manually implemented here.
+
+;; ;;;###autoload
+;; (defun modeline-get-active-window (&optional frame)
+;; "The active window excluding the child windows."
+;; (cond
+;; ((and (fboundp #'frame-parent) (frame-parent frame))
+;; (frame-selected-window (frame-parent frame)))
+;; ((frame-selected-window frame))))
+
+;; ;;;###autoload
+;; (defvar modeline-active-window (modeline-get-active-window)
+;; "The active window excluding the child windows.")
+
+(defalias #'modeline-active-window-p #'mode-line-window-selected-p)
+
+;; ;;;###autoload
+;; (defun modeline-active-window-p ()
+;; "Whether we are in the active window."
+;; (and modeline-active-window
+;; (eq modeline-active-window (selected-window))))
+
+;; ;;;###autoload
+;; (defun modeline-set-active-window (&rest _)
+;; "Update `modeline-active-window'."
+;; (let ((active-wn (modeline-get-active-window)))
+;; (cond
+;; ((minibuffer-window-active-p active-wn))
+;; (t (setq modeline-active-window active-wn))))
+;; (force-mode-line-update t))
+
+;; ;;;###autoload
+;; (defsubst modeline-unset-active-window (&rest _)
+;; "Set `modeline-active-window' to `nil'."
+;; (setq modeline-active-window nil))
+
+;; ;;;###autoload
+;; (defun modeline-refresh-modeline ()
+;; "Refresh the focus state of the mode line."
+;; (setq modeline-active-window nil)
+;; (mapc (lambda (frame)
+;; (cond ((eq (frame-focus-state frame) t)
+;; (setq modeline-active-window (modeline-get-active-window frame)))))
+;; (frame-list)))
+
+;; (add-hook 'window-configuration-change-hook #'modeline-set-active-window)
+;; (add-hook 'buffer-list-update-hook #'modeline-set-active-window)
+;; (add-hook 'after-make-frame-functions #'modeline-set-active-window)
+;; (add-hook 'delete-frame-functions #'modeline-set-active-window)
+;; (advice-add #'handle-switch-frame :after #'modeline-set-active-window)
+;; (add-function :after after-focus-change-function #'modeline-refresh-modeline)
;;; Faces