]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix pixel scrolling upwards in Info buffers
authorPo Lu <luangruo@yahoo.com>
Fri, 10 Dec 2021 03:25:10 +0000 (11:25 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 10 Dec 2021 03:25:10 +0000 (11:25 +0800)
* 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

index 813fbb0711bd5b30bcedf90caed4589e1d4f04df..432a5dc52cff92a0c91fa6e4080ec919a90f9f78 100644 (file)
@@ -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)