[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/golden-ratio 7593ba59b3 79/95: Merge pull request #48 from
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/golden-ratio 7593ba59b3 79/95: Merge pull request #48 from abo-abo/master |
Date: |
Thu, 7 Sep 2023 22:02:15 -0400 (EDT) |
branch: elpa/golden-ratio
commit 7593ba59b35b3c788e5a93865aed04d31b9c6291
Merge: d5413c832b e47c29f87e
Author: Thierry Volpiatto <thierry.volpiatto@gmail.com>
Commit: Thierry Volpiatto <thierry.volpiatto@gmail.com>
Merge pull request #48 from abo-abo/master
Simplify `golden-ratio-mode'
---
golden-ratio.el | 91 +++++++++++++++++++++------------------------------------
1 file changed, 34 insertions(+), 57 deletions(-)
diff --git a/golden-ratio.el b/golden-ratio.el
index d32d73de92..67970fe91e 100644
--- a/golden-ratio.el
+++ b/golden-ratio.el
@@ -115,9 +115,14 @@ will not cause the window to be resized to the golden
ratio."
(with-selected-window (or window (selected-window))
(let ((nrow (floor (- (first dimensions) (window-height))))
(ncol (floor (- (second dimensions) (window-width)))))
- (when (window-resizable-p (selected-window) nrow)
+ (when (and
+ (window-resizable-p (selected-window) nrow)
+ ;; don't enlarge ignored windows
+ (> nrow 0))
(enlarge-window nrow))
- (when (window-resizable-p (selected-window) ncol t)
+ (when (and (window-resizable-p (selected-window) ncol t)
+ ;; don't enlarge ignored windows
+ (> ncol 0))
(enlarge-window ncol t)))))
(defun golden-ratio-exclude-major-mode-p ()
@@ -126,70 +131,42 @@ will not cause the window to be resized to the golden
ratio."
(member (symbol-name major-mode)
golden-ratio-exclude-modes)))
+(defvar golden-ratio-in-progress nil
+ "Avoid recursive adjustment.")
+
;;;###autoload
(defun golden-ratio ()
"Resizes current window to the golden-ratio's size specs."
(interactive)
- (unless (or (not golden-ratio-mode)
- (window-minibuffer-p)
- (one-window-p)
- (golden-ratio-exclude-major-mode-p)
- (member (buffer-name)
- golden-ratio-exclude-buffer-names)
- (and golden-ratio-inhibit-functions
- (loop for fun in golden-ratio-inhibit-functions
- thereis (funcall fun))))
- (let ((dims (golden-ratio--dimensions))
- (golden-ratio-mode nil))
- ;; Always disable `golden-ratio-mode' to avoid
- ;; infinite loop in `balance-windows'.
- (balance-windows)
- (golden-ratio--resize-window dims)
- (when golden-ratio-recenter
- (scroll-right) (recenter)))))
-
-;; Should return nil
-(defadvice other-window
- (after golden-ratio-resize-window)
- (golden-ratio) nil)
-
-;; Should return the buffer
-(defadvice pop-to-buffer
- (around golden-ratio-resize-window)
- (prog1 ad-do-it (golden-ratio)))
-
-(defun golden-ratio--post-command-hook ()
- (when (or (memq this-command golden-ratio-extra-commands)
- (and (consp this-command) ; A lambda form.
- (loop for com in golden-ratio-extra-commands
- thereis (or (memq com this-command)
- (memq (car-safe com) this-command)))))
- ;; This is needed in emacs-25 to avoid this error from `recenter':
- ;; `recenter'ing a window that does not display current-buffer.
- ;; This doesn't happen in emacs-24.4 and previous versions.
- (run-with-idle-timer 0.01 nil (lambda () (golden-ratio)))))
-
-(defun golden-ratio--mouse-leave-buffer-hook ()
- (run-at-time 0.1 nil (lambda ()
- (golden-ratio))))
+ (when (and golden-ratio-mode
+ (not golden-ratio-in-progress))
+ (let ((golden-ratio-in-progress t))
+ (unless (or (window-minibuffer-p)
+ (one-window-p)
+ (golden-ratio-exclude-major-mode-p)
+ (member (buffer-name)
+ golden-ratio-exclude-buffer-names)
+ (and golden-ratio-inhibit-functions
+ (loop for fun in golden-ratio-inhibit-functions
+ thereis (funcall fun))))
+ (balance-windows)
+ (golden-ratio--resize-window (golden-ratio--dimensions))
+ (when golden-ratio-recenter
+ (scroll-right) (recenter))))))
+
+(defadvice select-window (after golden-ratio-select-window activate)
+ (when golden-ratio-mode
+ (golden-ratio)))
+
+(defadvice split-window (after golden-ratio-select-window activate)
+ (when golden-ratio-mode
+ (golden-ratio)))
;;;###autoload
(define-minor-mode golden-ratio-mode
"Enable automatic window resizing with golden ratio."
:lighter " Golden"
- :global t
- (if golden-ratio-mode
- (progn
- (add-hook 'window-configuration-change-hook 'golden-ratio)
- (add-hook 'post-command-hook 'golden-ratio--post-command-hook)
- (add-hook 'mouse-leave-buffer-hook
'golden-ratio--mouse-leave-buffer-hook)
- (ad-activate 'other-window)
- (ad-activate 'pop-to-buffer))
- (remove-hook 'window-configuration-change-hook 'golden-ratio)
- (remove-hook 'post-command-hook 'golden-ratio--post-command-hook)
- (remove-hook 'mouse-leave-buffer-hook
'golden-ratio--mouse-leave-buffer-hook)
- (ad-deactivate 'other-window)
- (ad-deactivate 'pop-to-buffer)))
+ :global t)
(provide 'golden-ratio)
- [nongnu] elpa/golden-ratio cbd076aa12 62/95: Merge pull request #34 from hickinbottoms/fix-mouse-window-select, (continued)
- [nongnu] elpa/golden-ratio cbd076aa12 62/95: Merge pull request #34 from hickinbottoms/fix-mouse-window-select, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 6173b7c416 64/95: Prevent recenter error in post-command-hook for emacs-25., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 64ceb4f0c8 68/95: Added widescreens header to readme., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio c506ddc04a 66/95: Added explanation of golden-ratio-adjust., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio b343baac28 69/95: Added automatic scaling of width according to frame size., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio d5413c832b 75/95: Fix types in golden-ratio-exclude-modes., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio e47c29f87e 78/95: Trigger after split-window as well, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio f7bee8e221 65/95: Added width adjustment to adjust for very wide frames., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 76f5307ad0 72/95: Merge pull request #43 from EricGebhart/master, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 0287ac76fd 76/95: Simplify `golden-ratio-mode', ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 7593ba59b3 79/95: Merge pull request #48 from abo-abo/master,
ELPA Syncer <=
- [nongnu] elpa/golden-ratio ac9bcedc63 81/95: Reenable improvements removed by error when reverting last PR., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 5e5b6c805b 85/95: Call window-configuration-change-hook only once, after the golden-ratio command., ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio c5e916d238 86/95: Add fixed width feature, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio f5807212d3 88/95: Merge pull request #81 from wictory/pr_20190406, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 1325ecac07 92/95: support minimal change, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio 656117e490 93/95: change default minimal change to 1, ELPA Syncer, 2023/09/07
- [nongnu] elpa/golden-ratio bf0035fd6a 95/95: Merge pull request #89 from skangas/nongnu-elpa-fixes, ELPA Syncer, 2023/09/07