I think that on scrolling of 1000 lines, smooth scroll is not necessary. User wants smooth scrolling only for the first spin of mouse wheel. This patch introduces a new variable `pixel-dead-time' and `pixel-last-scroll-time'. When another scroll request was delivered within `pixel-dead-time', very likely user does not want smooth scrolling. On such situation, `scroll-down' is called instead of `pixel-scroll-pixel-down'. On theory there should not be lag because of smoothing. I tested the revised pixel-scroll-mode for a week and confirmed that works good. When `pixel-dead-time' is zero, its behavior is the same as before. I think `pixel-dead-time' 0.1 works better. I'm sending ChangeLog and a patch relative to the current master. * ChangeLog Add a new algorithm to avoid lag when scrolling is in rush * lisp/pixel-scroll.el (pixel-scroll-up): Invoke 'scroll-up' when called within 'pixel-dead-time'. (pixel-scroll-down): Invoke 'scroll-down' when called within 'pixel-dead-time'. (pixel-dead-time): Interval that requires for the next smooth scrolling. (pixel-last-scroll-time): Time when the last scrolling was made. (Bug#29737)