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

From: Ihor Radchenko <[email-masked]>
Date: Wed, 08 Mar 2023 12:18:59 +0000

Hi,

According to 41.11 Line Height section of Elisp manual,

       A newline can have a ‘line-height’ text or overlay property that
    controls the total height of the display line ending in that newline.
    The property value can be one of several forms:
    
    ‘t’
         If the property value is ‘t’, the newline character has no effect
         on the displayed height of the line—the visible contents alone
         determine the height.  The ‘line-spacing’ property, described
         below, is also ignored in this case.  This is useful for tiling
         small images (or image slices) without adding blank areas between
         the images.

AFAIU, it implies that buffer-local `line-spacing' value is also
ignored.

Consider the following minimal example:

1. emacs -Q
2. (setq-default line-spacing 0.15)
3. (with-silent-modifications (insert-sliced-image (create-image "/path/to/some/image") nil nil 10 nil))

Expected: the spliced image is displayed without gaps.
Observed: visible gaps between image rows

If I understand correctly, `insert-sliced-image' tries to avoid the gaps
by (insert (propertize "\n" 'line-height t)). But it does not seem to be
working.

Am I missing something?

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version
 1.17.6) of 2023-02-13 built on localhost
Repository revision: df5c1c9370ca3c6a6e119278ef6bb1e3bca4d578
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Gentoo Linux

-- 
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>