emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r106751: Fix bug #9246 with scrolling


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106751: Fix bug #9246 with scrolling in ERC under word-wrap.
Date: Sat, 31 Dec 2011 10:25:48 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106751
fixes bug(s): http://debbugs.gnu.org/9246
author: Antoine Levitt <address@hidden>
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2011-12-31 10:25:48 +0200
message:
  Fix bug #9246 with scrolling in ERC under word-wrap.
  
   lisp/erc/erc-goodies.el (erc-scroll-to-bottom): Use post-command-hook
   rather than window-scroll-functions.  Fixes a bug with scrolling under
   word-wrap on a tty.
modified:
  lisp/erc/ChangeLog
  lisp/erc/erc-goodies.el
=== modified file 'lisp/erc/ChangeLog'
--- a/lisp/erc/ChangeLog        2011-11-28 09:24:08 +0000
+++ b/lisp/erc/ChangeLog        2011-12-31 08:25:48 +0000
@@ -1,3 +1,9 @@
+2011-12-31  Antoine Levitt  <address@hidden>
+
+       * erc-goodies.el (erc-scroll-to-bottom): Use post-command-hook
+       rather than window-scroll-functions.  Fixes a bug with word-wrap on
+       a tty.  (Bug#9246)
+
 2011-11-28  Mike Kazantsev  <address@hidden>  (tiny change)
 
        * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to

=== modified file 'lisp/erc/erc-goodies.el'
--- a/lisp/erc/erc-goodies.el   2011-01-26 08:36:39 +0000
+++ b/lisp/erc/erc-goodies.el   2011-12-31 08:25:48 +0000
@@ -60,7 +60,7 @@
   ((remove-hook 'erc-mode-hook 'erc-add-scroll-to-bottom)
    (dolist (buffer (erc-buffer-list))
      (with-current-buffer buffer
-       (remove-hook 'window-scroll-functions 'erc-scroll-to-bottom t)))))
+       (remove-hook 'post-command-hook 'erc-scroll-to-bottom t)))))
 
 (defun erc-add-scroll-to-bottom ()
   "A hook function for `erc-mode-hook' to recenter output at bottom of window.
@@ -70,35 +70,29 @@
 
 This works whenever scrolling happens, so it's added to
 `window-scroll-functions' rather than `erc-insert-post-hook'."
-  ;;(make-local-hook 'window-scroll-functions)
-  (add-hook 'window-scroll-functions 'erc-scroll-to-bottom nil t))
+  (add-hook 'post-command-hook 'erc-scroll-to-bottom nil t))
 
-(defun erc-scroll-to-bottom (window display-start)
+(defun erc-scroll-to-bottom ()
   "Recenter WINDOW so that `point' is on the last line.
 
 This is added to `window-scroll-functions' by `erc-add-scroll-to-bottom'.
 
 You can control which line is recentered to by customizing the
-variable `erc-input-line-position'.
-
-DISPLAY-START is ignored."
-  (if (window-live-p window)
+variable `erc-input-line-position'."
       ;; Temporarily bind resize-mini-windows to nil so that users who have it
       ;; set to a non-nil value will not suffer from premature minibuffer
       ;; shrinkage due to the below recenter call.  I have no idea why this
       ;; works, but it solves the problem, and has no negative side effects.
       ;; (Fran Litterio, 2003/01/07)
-      (let ((resize-mini-windows nil))
-        (erc-with-selected-window window
-          (save-restriction
-            (widen)
-            (when (and erc-insert-marker
-                       ;; we're editing a line. Scroll.
-                       (> (point) erc-insert-marker))
-              (save-excursion
-                (goto-char (point-max))
-                (recenter (or erc-input-line-position -1))
-                (sit-for 0))))))))
+  (let ((resize-mini-windows nil))
+    (save-restriction
+      (widen)
+      (when (and erc-insert-marker
+                ;; we're editing a line. Scroll.
+                (> (point) erc-insert-marker))
+       (save-excursion
+         (goto-char (point-max))
+         (recenter (or erc-input-line-position -1)))))))
 
 ;;; Make read only
 (define-erc-module readonly nil


reply via email to

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