Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property

From: Ihor Radchenko <[email-masked]>
Date: Thu, 09 Mar 2023 09:13:13 +0000

Eli Zaretskii <[email-masked]> writes:

>> The real problem I am trying to solve is scrolling images with large
>> heights. C-n/C-p and default scrolling jumps over the whole images as
>> they appear on a single line. It is annoying, especially when the image
>> is taller than the window height.
>
> That shouldn't happen: if an image is taller than the window, then
> C-n/C-p use window-vscroll to scroll the image only partially, at
> least as long as line-move-visual is non-nil (which it is by default).

Interesting. I did not notice this because this feature only manifests
itself on really tall images. The images that are about screen height
still feel jumpy.

I have experimented a bit using a very tall image and about a
screen-tall image from emacs -Q and recorded screencasts:

1. Scrolling a very tall image with C-n/C-p https://0x0.st/HibG.mkv
   - Emacs behaves nicely, except at the beginning/end of the image
   - At the beginning the image suddenly jumps half a screen
     May this behaviour be somehow customized?
   - At the end, the image disappears very quickly. Maybe something do
     to with end of buffer.

2. Scrolling a very tall image with mouse https://0x0.st/Hibk.mkv
   - Unexpectedly, most of the tall image is skipped upon mouse scroll.
     Bug?

3. Scrolling a near-screen tall image with C-n/C-p https://0x0.st/Hibn.mkv
   - Note how the image goes across the screen in just a few "jumps"
     (C-n strokes). This is the commonly observed behaviour in the images
     I often deal with. Probably something to do with what initial
     half-screen jump in (1).

     I think that jumping half screen at the beginning/end of the image
     is too drastic, especially for images near as tall as screen
     height. It would help if this behaviour is fixed or made
     customizable.

For future reference, I did the following in the screencasts:
1. Add several screens of newlines in *scratch* buffer
2. Insert one of the attached images in the middle of the buffer via
   (with-silent-modifications (insert-sliced-image (create-image "~/Downloads/drawing.svg")))
3. M-<
4. Scroll with mouse or with C-n/C-p

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>