diff options
author | Po Lu <luangruo@yahoo.com> | 2021-12-10 11:25:10 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-12-10 11:25:10 +0800 |
commit | 2e4740f04239ee441685b2f43d156efcf6359383 (patch) | |
tree | c5419f855c3334f735380cb14a895a518107bd89 /lisp/pixel-scroll.el | |
parent | e8d90a3fd402c0c67bf4b4b29ac26108ead8845d (diff) | |
download | emacs-2e4740f04239ee441685b2f43d156efcf6359383.tar.gz |
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.
Diffstat (limited to 'lisp/pixel-scroll.el')
-rw-r--r-- | lisp/pixel-scroll.el | 8 |
1 files 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) |