Subject: bug#46853: Confusing terminology "face height" instead of "font size"

From: Stefan Kangas <[email-masked]>
Date: Wed, 3 Mar 2021 18:16:02 -0600

Eli Zaretskii <[email-masked]> writes:

>> From: Lars Ingebrigtsen <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Mon, 01 Mar 2021 20:45:28 +0100
>>
>> Eli Zaretskii <[email-masked]> writes:
>>
>> > No, it's because enlarging _all_ faces makes no sense.
>>
>> I really thought that's how this command worked, but
>>
>> emacs -Q -f list-faces-display
>>
>> and then `C-x C-+' in the buffer enlarges all the faces, even
>> variable-pitch...
>
> It only enlarges those faces which inherit their size from 'default'.

I find the semantics here confusing.  I do this in emacs -Q:

    (progn
      (defface foo-bar '((t :weight bold)) "foo")
      (pop-to-buffer (get-buffer-create "foo"))
      (insert "aaa " (propertize "bbb" 'face 'foo-bar) " ccc")
      (text-scale-adjust 3))

And I see that "bbb" has its font size increased together with "aaa" and
"ccc".  But `M-x describe-face RET foo-bar' says that "Inherit:
unspecified".

Looking at the manual, the node `(elisp) Basic Faces' says:

    ‘default’
         The default face, whose attributes are all specified.  All other
         faces implicitly inherit from it: any unspecified attribute
         defaults to the attribute on this face (*note Face Attributes::).

So when you say that "it only enlarges those faces which inherit their
size from 'default'", doesn't that just mean that *any* face is resized,
unless that face itself or any its parents specify an absolute :height
(an integer)?