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.
This commit is contained in:
parent
3778cdd8ef
commit
7c2b8880ef
2 changed files with 19 additions and 19 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
|
||||
|
||||
* 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 <mk.fraggod@gmail.com> (tiny change)
|
||||
|
||||
* erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to
|
||||
|
|
|
@ -60,7 +60,7 @@ argument to `recenter'."
|
|||
((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 @@ the value of `erc-input-line-position'.
|
|||
|
||||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue