On 2012-06-13 18:22,, Brian Fransioli wrote: > > After updating to emacs 24.1.x I noticed ERC scroll functionality > changed. Originally, it would recenter to force the prompt to be near > the bottom of the screen (according to `erc-input-line-position'). Now, > this recentering only happens when I enter text, or perform a mouse > event. Channel joins/parts and new messages hit the bottom of the > screen, and recentering moves the bottom line to the center of the > buffer. > > The overall effect is input by the user moves the screen to the bottom, > while channel/server inputs bounce around from middle to bottom and back > again. > > Looking in erc-goodies.el at `erc-add-scroll-bottom', it's easy to see > the documentation is also out of date. It states it uses > `window-scroll-functions' but instead adds the hook to > `post-command-hook'. > > Examining commits, I found the culprit: > > commit: > a1d63e03c3eda51dcec158d6027adf9dbdcfd8dd > > view changes via git emacs web: > http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/erc/erc-goodies.el?id=a1d63e03c3eda51dcec158d6027adf9dbdcfd8dd > > > I see that the changes were reported to fix a bug on tty's, but the > results are severe motion sickness for even moderately chatty channels. > > Reproduce by: > (erc-scrolltobottom-mode) > (setq erc-input-line-position -2) > > Regards, > Brian > Firstly, I agree with you completely that scrolltobottom needs improvements. I can't be sure why they changed the behavior, since the new method is clearly inferior, but I believe it's because window-scroll-functions is never meant to change "the way the window is scrolled". I've monkey-patched ERC myself to handle the whole thing better. I've attached the Lisp. Just evaluate all the code and you'll be all set. (I know it's not production-quality code, but it does the job and relieves you from ever thinking about it again.) Deniz