Subject: bug#71646: 29.3; pixel-scroll-precision-mode overrides paging behaviour even when pixel-scroll-precision-interpolate-page is off

From: Mike Woolley <[email-masked]>
Date: Wed, 19 Jun 2024 11:44:52 +0100

Hi,

Playing with `pixel-scroll-precision-mode’ I noticed a small issue:

Setting `pixel-scroll-precision-interpolate-page’ is supposed to turn off the paging animation (which it does) however even when it’s off, <prior> and <next> invoke `cua-scroll-up’ & `cua-scroll-down’ rather than allowing another keymap to handle it.

Unfortunately this means any other mapping for these keys you might have has now been silently overridden (even after you’ve said you don’t want the new behaviour).

(defun pixel-scroll-interpolate-up ()
  "Interpolate a scroll upwards by one page."
  (interactive)
  (if pixel-scroll-precision-interpolate-page
      (pixel-scroll-precision-interpolate (window-text-height nil t) nil 1)
    (cua-scroll-down)))

I think it would be better if `pixel-scroll-precision-mode’ did nothing if `pixel-scroll-precision-interpolate-page’ is off and allowed another keycap to handle <prior> & <next>.

I also noticed that it only maps <prior> & <next> and not C-v / M-v, so in other words behaviour could be different depending on exactly which Page Up & Down key sequence you invoke.

Thanks,
Mike