emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/olivetti de2716c 081/134: Only reset all windows on exi


From: Stefan Monnier
Subject: [elpa] externals/olivetti de2716c 081/134: Only reset all windows on exit
Date: Thu, 25 Apr 2019 09:57:33 -0400 (EDT)

branch: externals/olivetti
commit de2716cfb1f4dc82a08093cdd00200e9bb1f07ef
Author: Paul Rankin <address@hidden>
Commit: Paul Rankin <address@hidden>

    Only reset all windows on exit
---
 olivetti.el | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/olivetti.el b/olivetti.el
index 99c3f4b..cb980e5 100644
--- a/olivetti.el
+++ b/olivetti.el
@@ -152,7 +152,7 @@ exiting. The reverse is not true."
 (defun olivetti-set-environment ()
   "Set text body width to `olivetti-body-width' with relative margins.
 
-Cycle through all windows displaying current buffer and, first,
+Cycle through all windows displaying current buffer and first
 find the `olivetti-safe-width' to which to set
 `olivetti-body-width', then find the appropriate margin size
 relative to each window. Finally set the window margins, taking
@@ -173,29 +173,28 @@ care that the maximum size is 0."
       (set-window-margins window margin margin))
     (if olivetti-hide-mode-line (olivetti-set-mode-line))))
 
-(defun olivetti-reset-environment ()
-  "Remove Olivetti's parameters and margins.
+(defun olivetti-reset-all-windows ()
+  "Remove Olivetti's parameters and margins from all windows.
 
-Cycle through all windows displaying current buffer and reset
-window parameter `split-window' to nil. Then reset the window
-margins to nil."
+Cycle through all windows displaying current buffer and call
+`olivetti-reset-window'."
   (dolist (window (get-buffer-window-list nil nil t))
-    (set-window-parameter window 'split-window nil)
-    (set-window-margins window nil)))
+    (olivetti-reset-window window)))
 
-(defun olivetti-split-window (&optional window size side pixelwise)
-  "Safely split the window by first resetting the environment.
-
-First call `olivetti-reset-environment' then try
-`split-window'.
+(defun olivetti-reset-window (window)
+  "Remove Olivetti's parameters and margins from WINDOW."
+  (set-window-parameter window 'split-window nil)
+  (set-window-margins window nil))
 
+(defun olivetti-split-window (&optional window size side pixelwise)
+  "Call `split-window' after resetting WINDOW.
 If `olivetti-mode' is non-nil, call `olivetti-set-environment'."
-  (olivetti-reset-environment)
+  (olivetti-reset-window window)
   (split-window window size side pixelwise))
 
 (defun olivetti-split-window-sensibly (&optional window)
   "Like `olivetti-split-window' but calls `split-window-sensibly'."
-  (olivetti-reset-environment)
+  (olivetti-reset-window window)
   (split-window-sensibly window))
 
 
@@ -342,7 +341,7 @@ hidden."
                         text-scale-mode-hook))
           (add-hook hook 'olivetti-set-environment t t))
         (add-hook 'change-major-mode-hook
-                  'olivetti-reset-environment nil t)
+                  'olivetti-reset-all-windows nil t)
         (setq-local split-window-preferred-function
               'olivetti-split-window-sensibly)
         (setq olivetti--visual-line-mode visual-line-mode)
@@ -352,8 +351,8 @@ hidden."
                     after-setting-font-hook
                     text-scale-mode-hook))
       (remove-hook hook 'olivetti-set-environment t))
+    (olivetti-reset-all-windows)
     (olivetti-set-mode-line 'exit)
-    (olivetti-reset-environment)
     (if (and olivetti-recall-visual-line-mode-entry-state
              (not olivetti--visual-line-mode))
         (visual-line-mode 0))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]