branch: elpa/auto-dim-other-buffers commit e473ef45ea3defa22de7cfb4b2f7e02d41f346d5 Author: Steven Degutis <sbdegu...@gmail.com> Commit: Steven Degutis <sbdegu...@gmail.com>
set buffer faces MUCH less often --- auto-dim-other-buffers.el | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/auto-dim-other-buffers.el b/auto-dim-other-buffers.el index 5683cf2168..280dfdb3de 100644 --- a/auto-dim-other-buffers.el +++ b/auto-dim-other-buffers.el @@ -12,27 +12,40 @@ :type 'face :group 'auto-dim-other-buffers) -(defun turn-off-auto-dim-other-buffers () +(setq adob/last-buffer nil) + +(defun adob/pre-command-hook () + (setq adob/last-buffer (current-buffer))) + +(defun adob/post-command-hook () + (let ((original (current-buffer))) + (unless (eq original adob/last-buffer) + (dolist (buffer (buffer-list)) + (set-buffer buffer) + (unless (minibufferp) + (buffer-face-set auto-dim-other-buffers-face))) + (set-buffer original) + (buffer-face-set nil)))) + +(defun adob/clear-all-windows () (interactive) - (remove-hook 'post-command-hook 'sd/auto-dim-other-buffers) (let ((original (current-buffer))) (dolist (buffer (buffer-list)) (set-buffer buffer) (buffer-face-set nil)) (set-buffer original))) -(defun turn-on-auto-dim-other-buffers () +(defun turn-off-auto-dim-other-buffers () (interactive) - (add-hook 'post-command-hook 'sd/auto-dim-other-buffers)) + (remove-hook 'pre-command-hook 'adob/pre-command-hook) + (remove-hook 'post-command-hook 'adob/post-command-hook) + (adob/clear-all-windows)) -(defun sd/auto-dim-other-buffers () - (let ((original (current-buffer))) - (dolist (buffer (buffer-list)) - (set-buffer buffer) - (unless (minibufferp) - (buffer-face-set auto-dim-other-buffers-face))) - (set-buffer original) - (buffer-face-set nil))) +(defun turn-on-auto-dim-other-buffers () + (interactive) + (setq adob/last-buffer nil) + (add-hook 'pre-command-hook 'adob/pre-command-hook) + (add-hook 'post-command-hook 'adob/post-command-hook)) (provide 'auto-dim-other-buffers)