[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/auto-dim-other-buffers a87cf772ac 61/82: Dim only the last
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/auto-dim-other-buffers a87cf772ac 61/82: Dim only the last buffer when loosing focus |
Date: |
Mon, 12 Dec 2022 20:58:44 -0500 (EST) |
branch: elpa/auto-dim-other-buffers
commit a87cf772ac4517864bd11e6d053d7dcedd802012
Author: Michal Nazarewicz <mina86@mina86.com>
Commit: Michal Nazarewicz <mina86@mina86.com>
Dim only the last buffer when loosing focus
When Emacs frame looses focus, we know exactly which buffer is the
undimmed one. There’s no reason to go through all buffers and dim
them all since looking at only that one is sufficient. Do that.
---
auto-dim-other-buffers.el | 54 +++++++++++++++++++++--------------------------
1 file changed, 24 insertions(+), 30 deletions(-)
diff --git a/auto-dim-other-buffers.el b/auto-dim-other-buffers.el
index 8679d120a4..925eb1a6fb 100644
--- a/auto-dim-other-buffers.el
+++ b/auto-dim-other-buffers.el
@@ -8,7 +8,7 @@
;; Michal Nazarewicz <mina86@mina86.com>
;; Maintainer: Michal Nazarewicz <mina86@mina86.com>
;; URL: https://github.com/mina86/auto-dim-other-buffers.el
-;; Version: 1.9
+;; Version: 1.9.1
;; This file is not part of GNU Emacs.
@@ -117,8 +117,13 @@ Currently only mini buffer and echo areas are ignored."
(defun adob--focus-out-hook ()
"Dim all buffers if `auto-dim-other-buffers-dim-on-focus-out'."
- (when auto-dim-other-buffers-dim-on-focus-out
- (adob--dim-all-buffers)))
+ (when (and auto-dim-other-buffers-dim-on-focus-out
+ adob--last-buffer
+ (buffer-live-p adob--last-buffer)
+ (not (adob--never-dim-p adob--last-buffer)))
+ (with-current-buffer adob--last-buffer
+ (adob--dim-buffer))
+ (setq adob--last-buffer nil)))
(defun adob--focus-in-hook ()
"Undim current buffers if `auto-dim-other-buffers-dim-on-focus-out'."
@@ -126,37 +131,26 @@ Currently only mini buffer and echo areas are ignored."
(adob--undim-buffer)
(setq adob--last-buffer (current-buffer))))
-(defun adob--dim-all-buffers (&optional except-for)
- "Dim all buffers which except for EXCEPT-FOR and any ignored buffers.
-If EXCEPT-FOR is non-nil, it specifies buffer which should not be
-affected. Similarly, any buffers for which `adob--never-dim-p'
-function returns non-nil won’t be touched either."
- (save-current-buffer
- (dolist (buffer (buffer-list))
- (unless (or (eq buffer except-for)
- (adob--never-dim-p buffer))
- (set-buffer buffer)
- (adob--dim-buffer)))))
-
-(defun adob--hooks (callback)
- "Add (if CALLBACK is `add-hook') or remove (if `remove-hook') adob hooks."
- (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)))
-
;;;###autoload
(define-minor-mode auto-dim-other-buffers-mode
"Visually makes non-current buffers less prominent"
:global t
- (if auto-dim-other-buffers-mode
- (progn
- (adob--dim-all-buffers (setq adob--last-buffer (current-buffer)))
- (adob--hooks 'add-hook))
- (setq adob--last-buffer nil)
- (adob--hooks 'remove-hook)
- (save-current-buffer
+ (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)))
+
+ (save-current-buffer
+ (if auto-dim-other-buffers-mode
+ (progn
+ (setq adob--last-buffer (current-buffer))
+ (dolist (buffer (buffer-list))
+ (unless (or (eq buffer adob--last-buffer)
+ (adob--never-dim-p buffer))
+ (set-buffer buffer)
+ (adob--dim-buffer))))
+ (setq adob--last-buffer nil)
(dolist (buffer (buffer-list))
(when (local-variable-p 'adob--face-mode-remapping buffer)
(set-buffer buffer)
- [nongnu] elpa/auto-dim-other-buffers 6600c79600 24/82: Mark adob-mode as autoload function, (continued)
- [nongnu] elpa/auto-dim-other-buffers 6600c79600 24/82: Mark adob-mode as autoload function, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 932b16751f 31/82: .gitignore *.elc files., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers a385b6013e 39/82: Drop turn-{on, off}-* functions., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 8c4470713f 33/82: Set lexical binding on., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers a066c32ada 40/82: Allow disabling “dimming on focus out” feature, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 8b1d8803b5 43/82: Fix Markdown formatting in README file, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers e9c886fac5 42/82: Use even number of arguments for `setq', ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 853523a854 50/82: Don't dim last buffer when switching to minibuffer or echo area., ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers efd617c999 60/82: Make sure current buffer is not dimmed when the mode is enabled, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers e4ef0a93ca 66/82: Unconditionally undim selected buffer when focus is regained, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers a87cf772ac 61/82: Dim only the last buffer when loosing focus,
ELPA Syncer <=
- [nongnu] elpa/auto-dim-other-buffers 087baafa08 51/82: Move minibuffer check to the beginning of ‘adob--buffer-list-update-hook’, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers bedeef9ea3 70/82: Support ‘adow-mode’ since the first Emacs 27 preview releases, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers cad370fb6c 72/82: Preserve current-buffer, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 191d714ebb 68/82: Dim individual windows rather than buffers, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers ed9ebbcc52 74/82: Define Auto Dim Other Buffers customise group, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 0a103b09eb 73/82: Require 'face-remap to silence compilation warning, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers a1c67bf557 81/82: Update screenshot animation and demo video link, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers c9fe23d03c 79/82: Allow configuring which faces to alter; not just the ‘default’, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 8062977284 10/82: face is real face, ELPA Syncer, 2022/12/12
- [nongnu] elpa/auto-dim-other-buffers 7f332de332 17/82: oops, ELPA Syncer, 2022/12/12