changeset 104365:fe22bf79af7f

(linum-mode): window-size-change-functions is redundant. Adapt to new window-configuration-change-hook behavior. (linum-after-size, linum-after-config): Remove.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 19 Aug 2009 17:28:52 +0000
parents 82c4f7cce5f9
children f02a9f76b408
files lisp/ChangeLog lisp/linum.el
diffstat 2 files changed, 17 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Aug 19 17:16:26 2009 +0000
+++ b/lisp/ChangeLog	Wed Aug 19 17:28:52 2009 +0000
@@ -1,5 +1,9 @@
 2009-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* linum.el (linum-mode): window-size-change-functions is redundant.
+	Adapt to new window-configuration-change-hook behavior.
+	(linum-after-size, linum-after-config): Remove.
+
 	* imenu.el (imenu-example--name-and-position)
 	(imenu-example--lisp-extract-index-name)
 	(imenu-example--create-lisp-index, imenu-example--create-c-index):
--- a/lisp/linum.el	Wed Aug 19 17:16:26 2009 +0000
+++ b/lisp/linum.el	Wed Aug 19 17:28:52 2009 +0000
@@ -82,17 +82,22 @@
                                            'linum-update-current) nil t)
           (add-hook 'after-change-functions 'linum-after-change nil t))
         (add-hook 'window-scroll-functions 'linum-after-scroll nil t)
-        (add-hook 'window-size-change-functions 'linum-after-size nil t)
+        ;; Using both window-size-change-functions and
+        ;; window-configuration-change-hook seems redundant. --Stef
+        ;; (add-hook 'window-size-change-functions 'linum-after-size nil t)
         (add-hook 'change-major-mode-hook 'linum-delete-overlays nil t)
         (add-hook 'window-configuration-change-hook
-                  'linum-after-config nil t)
+                  ;; FIXME: If the buffer is shown in N windows, this
+                  ;; will be called N times rather than once.  We should use
+                  ;; something like linum-update-window instead.
+                  'linum-update-current nil t)
         (linum-update-current))
     (remove-hook 'post-command-hook 'linum-update-current t)
     (remove-hook 'post-command-hook 'linum-schedule t)
-    (remove-hook 'window-size-change-functions 'linum-after-size t)
+    ;; (remove-hook 'window-size-change-functions 'linum-after-size t)
     (remove-hook 'window-scroll-functions 'linum-after-scroll t)
     (remove-hook 'after-change-functions 'linum-after-change t)
-    (remove-hook 'window-configuration-change-hook 'linum-after-config t)
+    (remove-hook 'window-configuration-change-hook 'linum-update-current t)
     (remove-hook 'change-major-mode-hook 'linum-delete-overlays t)
     (linum-delete-overlays)))
 
@@ -175,15 +180,15 @@
 (defun linum-after-scroll (win start)
   (linum-update (window-buffer win)))
 
-(defun linum-after-size (frame)
-  (linum-after-config))
+;; (defun linum-after-size (frame)
+;;   (linum-after-config))
 
 (defun linum-schedule ()
   ;; schedule an update; the delay gives Emacs a chance for display changes
   (run-with-idle-timer 0 nil #'linum-update-current))
 
-(defun linum-after-config ()
-  (walk-windows (lambda (w) (linum-update (window-buffer w))) nil 'visible))
+;; (defun linum-after-config ()
+;;   (walk-windows (lambda (w) (linum-update (window-buffer w))) nil 'visible))
 
 (defun linum-unload-function ()
   "Unload the Linum library."