From 2e4740f04239ee441685b2f43d156efcf6359383 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 11:25:10 +0800 Subject: [PATCH] Fix pixel scrolling upwards in Info buffers * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): Don't blindly trust window start to be the beginning of a visual line. --- lisp/pixel-scroll.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 813fbb0711b..432a5dc52cf 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -397,7 +397,10 @@ returns nil." The returned value is a cons of the position of the first character on the unseen line just above the scope of current window, and the pixel height of that line." - (let* ((pos0 (window-start)) + (let* ((pos0 (save-excursion + (goto-char (window-start)) + (beginning-of-visual-line) + (point))) (vscroll0 (window-vscroll nil t)) (line-height nil) (pos @@ -407,8 +410,7 @@ window, and the pixel height of that line." (point-min) (vertical-motion -1) (setq line-height - (cdr (window-text-pixel-size nil (point) - pos0))) + (cdr (window-text-pixel-size nil (point) pos0))) (point))))) ;; restore initial position (set-window-start nil pos0 t) -- 2.39.2