[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/auto-dim-other-buffers 8d7ef78b4a 65/82: Prefer ‘after-fo
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/auto-dim-other-buffers 8d7ef78b4a 65/82: Prefer ‘after-focus-change-function’ |
Date: |
Mon, 12 Dec 2022 20:58:45 -0500 (EST) |
branch: elpa/auto-dim-other-buffers
commit 8d7ef78b4aab1191b22552c627455785edfb1621
Author: Michal Nazarewicz <mina86@mina86.com>
Commit: Michal Nazarewicz <mina86@mina86.com>
Prefer ‘after-focus-change-function’
Prefer hooking into ‘after-focus-change-function’ rather than
deprecated since Emacs 27.1 ‘focus-out-hook’ and ‘focus-in-hook’
hooks.
---
auto-dim-other-buffers.el | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/auto-dim-other-buffers.el b/auto-dim-other-buffers.el
index 27cfbaf69d..78e0cce802 100644
--- a/auto-dim-other-buffers.el
+++ b/auto-dim-other-buffers.el
@@ -133,15 +133,29 @@ Currently only mini buffer and echo areas are ignored."
(adob--undim-buffer)
(setq adob--last-buffer (current-buffer)))))
+(defun adob--focus-change-hook ()
+ "Based on focus status of selected frame dim or undim selected buffer.
+Do nothing if `auto-dim-other-buffers-dim-on-focus-out' is nil."
+ (if (with-no-warnings (frame-focus-state))
+ (adob--focus-in-hook)
+ (adob--focus-out-hook)))
+
;;;###autoload
(define-minor-mode auto-dim-other-buffers-mode
"Visually makes non-current buffers less prominent"
:global t
(let ((callback (if auto-dim-other-buffers-mode #'add-hook #'remove-hook)))
- (dolist (args '((buffer-list-update-hook adob--buffer-list-update-hook)
- (focus-out-hook adob--focus-out-hook)
- (focus-in-hook adob--focus-in-hook)))
- (apply callback args)))
+ (funcall callback 'buffer-list-update-hook #'adob--buffer-list-update-hook)
+ ;; Prefer ‘after-focus-change-function’ (which was added in Emacs 27.1) to
+ ;; ‘focus-out-hook’ and ‘focus-in-hook’.
+ (if (boundp 'after-focus-change-function)
+ (if auto-dim-other-buffers-mode
+ (add-function :after after-focus-change-function
+ #'adob--focus-change-hook)
+ (remove-function after-focus-change-function
+ #'adob--focus-change-hook))
+ (funcall callback 'focus-out-hook #'adob--focus-out-hook)
+ (funcall callback 'focus-in-hook #'adob--focus-in-hook)))
(save-current-buffer
(if auto-dim-other-buffers-mode
- [nongnu] elpa/auto-dim-other-buffers e64bdbdb0a 34/82: Use `face-remap-add-relative' to not interfere with `buffer-face-mode', (continued)
- [nongnu] elpa/auto-dim-other-buffers e64bdbdb0a 34/82: Use `face-remap-add-relative' to not interfere with `buffer-face-mode', ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 6ebff3681f 46/82: Don’t dim already dimmed buffer, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers e85510688d 19/82: duh, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers c80b367dd0 22/82: Leave echo area alone, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers bea02696f0 21/82: Use save-current-buffer and with-current-buffer, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers a969ff4e0e 16/82: minor mode, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers cfab476572 36/82: Move hooks adding/removing to separate function, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers cedb4c4895 47/82: Use ‘buffer-list-update-hook’ instead of ‘post-command-hook’, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 44b8965cff 32/82: Specify the license, GPL-3.0+ is used., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 4cc1e1bb08 55/82: Add version of the dim face for light background, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 8d7ef78b4a 65/82: Prefer ‘after-focus-change-function’,
ELPA Syncer <=
- [nongnu] elpa/auto-dim-other-buffers af8eec9ec2 62/82: Prefer ‘window-buffer’ to ‘current-buffer’, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 4d6e644340 03/82: customizable face, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers d2039c43af 08/82: upgrade the version based on how efficient it is now :D, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 5c793ea235 14/82: better readme, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 0bf0800bb8 07/82: dont try to set face on dead buffers, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers d4f5508b4e 30/82: Bumped version to 1.5 and updated docstrings and comments., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 475321c845 35/82: Refactor `adob--dim-buffer' to check `dim' only once, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers b797afadb4 44/82: s/it’s/its/, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 31c13e7ed8 45/82: Use ‘window-buffer’ instead of ‘current-buffer’, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 90f6a6f0fb 49/82: Bump Version in comment, ELPA Syncer, 2022/12/12