Subject: bug#55299: 29.0.50; Bug with the mode-line and pixel-scroll-precision-mode

From: Konrad Podczeck <[email-masked]>
Date: Sat, 7 May 2022 16:40:23 +0200

With this patch, I don’t get any error message, but If a frame has only one window, I cannot scroll (using the mouse wheel) downwards anymore, and after doing C-x 2, the same is true if I scroll in the active pane, while when I scroll in the inactive pane, I always get scrolling upwards, regardless of which direction I rotate the wheel.

> Am 07.05.2022 um 15:21 schrieb Po Lu <[email-masked]>:
> 
> Konrad Podczeck <[email-masked]> writes:
> 
>> Debugger entered--Lisp error: (wrong-type-argument wholenump 489.0)
>>  posn-at-x-y(0 489.0)
>>  pixel-scroll-precision-scroll-up-page(1.0)
>>  pixel-scroll-precision-scroll-up(1.0)
>>  pixel-scroll-precision((wheel-down (#<window 3 on *GNU Emacs*> 1011 (259 . 390) 7730978 nil 1011 (37 . 22) nil (259 . 82) (7 . 14)) 1 0 (0.0 . -1.0)))
>>  funcall-interactively(pixel-scroll-precision (wheel-down (#<window 3 on *GNU Emacs*> 1011 (259 . 390) 7730978 nil 1011 (37 . 22) nil (259 . 82) (7 . 14)) 1 0 (0.0 . -1.0)))
>>  call-interactively(pixel-scroll-precision nil nil)
>>  command-execute(pixel-scroll-precision)
> 
> Sorry, please try this patch instead:
> 
> diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
> index b0fe2f56c0..a7cfda2491 100644
> --- a/lisp/pixel-scroll.el
> +++ b/lisp/pixel-scroll.el
> @@ -685,6 +685,8 @@ pixel-scroll-precision
>       (setq window (frame-selected-window window)))
>     (if (and (nth 4 event))
>         (let ((delta (round (cdr (nth 4 event)))))
> +          (when (< delta 1.0)
> +            (setq delta 1))
>           (unless (zerop delta)
>             (if (> (abs delta) (window-text-height window t))
>                 (mwheel-scroll event nil)