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

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

[nongnu] elpa/visual-fill-column f833fb94ff 095/137: Use the window's pr


From: ELPA Syncer
Subject: [nongnu] elpa/visual-fill-column f833fb94ff 095/137: Use the window's previous margins as minimum margins.
Date: Sun, 2 Jan 2022 22:59:14 -0500 (EST)

branch: elpa/visual-fill-column
commit f833fb94ffe93c100dc736ff7bfdcb678a6fedb2
Author: Joost Kremers <joostkremers@fastmail.fm>
Commit: Joost Kremers <joostkremers@fastmail.fm>

    Use the window's previous margins as minimum margins.
    
    Store the width of the margins before activating `visual-fill-column-mode`, 
use
    it as the minimum width of the margins and restore it when
    `visual-fill-column-mode` is disabled.
---
 visual-fill-column.el | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/visual-fill-column.el b/visual-fill-column.el
index b4d3a62b4e..c4a87e6f48 100644
--- a/visual-fill-column.el
+++ b/visual-fill-column.el
@@ -66,6 +66,9 @@ this option is set to a value, it is used instead."
 (make-variable-buffer-local 'visual-fill-column-center-text)
 (put 'visual-fill-column-center-text 'safe-local-variable 'symbolp)
 
+(defvar visual-fill-column--min-margins nil "Width of the margins before 
invoking `visual-fill-column-mode'.")
+(make-variable-buffer-local 'visual-fill-column--min-margins)
+
 (defvar visual-fill-column-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map [right-margin mouse-1] (global-key-binding [mouse-1])) ; 
#'mouse-set-point
@@ -125,14 +128,19 @@ that actually visit a file."
   (add-hook 'window-configuration-change-hook 
#'visual-fill-column--adjust-window 'append 'local)
   (if (>= emacs-major-version 26)
       (add-hook 'window-size-change-functions 
#'visual-fill-column--adjust-frame 'append))
+  (let ((margins (window-margins (selected-window))))
+    (setq visual-fill-column--min-margins (cons (or (car margins) 0)
+                                                (or (cdr margins) 0))))
   (visual-fill-column--adjust-window))
 
 (defun visual-fill-column-mode--disable ()
   "Disable `visual-fill-column-mode' for the current buffer."
   (remove-hook 'window-configuration-change-hook 
#'visual-fill-column--adjust-window 'local)
-  (set-window-fringes (get-buffer-window (current-buffer)) nil)
-  (set-window-margins (get-buffer-window (current-buffer)) nil)
-  (set-window-parameter (get-buffer-window (current-buffer)) 'min-margins nil))
+  (let ((window (get-buffer-window (current-buffer))))
+    (set-window-margins window (car visual-fill-column--min-margins) (cdr 
visual-fill-column--min-margins))
+    (set-window-fringes window nil)
+    (set-window-parameter window 'min-margins nil)
+    (kill-local-variable 'visual-fill-column--min-margins)))
 
 ;;;###autoload
 (defun visual-fill-column-split-window-sensibly (&optional window)
@@ -224,7 +232,7 @@ and `text-scale-mode-step'."
       (setq left right)
       (setq right 0))
 
-    (set-window-parameter window 'min-margins '(0 . 0))
+    (set-window-parameter window 'min-margins visual-fill-column--min-margins)
     (set-window-margins window left right)))
 
 (provide 'visual-fill-column)



reply via email to

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