Subject: bug#20872: 24.5; add-face-text-property doesn't work for :height

From: Eli Zaretskii <[email-masked]>
Date: Mon, 22 Jun 2015 18:10:06 +0300

> From: Oleh Krehel <[email-masked]>
> Date: Mon, 22 Jun 2015 13:02:45 +0200
> 
>     (defface test-face
>       '((t (:height 1.2 :foreground "green")))
>       "doc.")
>     (setq asdf (propertize "asdf" 'face 'test-face))
>     (add-face-text-property 0 (length asdf) '(:foreground "red") nil asdf)
> 
> `asdf' will still have the height 1.2 through `test-face' while gaining
> a red foreground, instead of green.
> 
> But this doesn't work:
> 
>     (add-face-text-property 0 (length asdf) '(:height 1.0) nil asdf)
> 
> While the text properties will change, when inserting `asdf' into a
> `fundamental-mode' buffer, it will still have the height 1.2. How can I
> set the height to 1.0, while preserving the face?

Untested: copy the face using copy-face, then change ':height'
attribute of the copied face using set-face-attribute, and finally
apply the modified face to the string.