all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alex Kost <alezost@gmail.com>
To: Alexandros Prekates <aprekates@openmailbox.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Is Default face  a per frame attribute or a global one?
Date: Tue, 26 Aug 2014 08:55:36 +0400	[thread overview]
Message-ID: <87k35vn92v.fsf@gmail.com> (raw)
In-Reply-To: <53FBC1CE.7030602@openmailbox.org> (Alexandros Prekates's message of "Tue, 26 Aug 2014 02:07:58 +0300")

Alexandros Prekates (2014-08-26 03:07 +0400) wrote:

> On 25/08/2014 03:03 μμ, Alex Kost wrote:
>> Alexandros Prekates (2014-08-25 14:07 +0400) wrote:
>>
>>> On 25/08/2014 08:54 πμ, Alex Kost wrote:
>>>> Alexandros Prekates (2014-08-25 03:29 +0400) wrote:
>>>>
>>>>> Continuing little experiments to better undestand the relation among
>>>>> fonts, faces, frames etc, i noticed
>>>>> that  if i have 2 frames (A and B) and  i evaluate from ielm in frame A
>>>>> (set-frame-font "liberation serif" nil nil) . when i check the default
>>>>> face's font i see different values in frame A from frame B.
>>>>>
>>>>> So it seems that default face is a frame's variable.
>>>>>
>>>>> i mean every frame has its own default face? Is that right?
>>>> As you can see after "C-h f set-frame-font":
>>>>
>>>> “...
>>>> If FRAMES is nil, apply the font to the selected frame only.
>>>> ...”
>>>>
>>>> So the second nil in your expression means you set a font only for the
>>>> current frame A.
>>>>
>>>>
>>> So default face is not a global emacs session variable. It's an
>>> attribute per frame.
>> I thought you were talking about frame fonts.  AFAIU there is only one
>> ‘default’ face (defined in "faces.el"), if that's what you mean.
>>
>
> But the assumption that there is only one global default face
> contradicts with what i see.
>
> In two frames (of the same emacs session)  M-x describe-face (default)
> gives me different font families ( i changed in each frame the font with
> set-frame-font.)

I didn't mean there is always only one global value of a face for all
frames.  As you could see it is possible to set face attributes for a
particular frame.  Here is a paragraph from (info "(elisp) Faces"):

“...
   By default, each face name corresponds to the same set of attributes
in all frames.  But you can also assign a face name a special set of
attributes in one frame (*note Attribute Functions::).
”

You can look at (info "(elisp) Attribute Functions") to read how it can
be done.  And ‘set-frame-font’ does exactly that: it calls
‘set-face-attribute’ to specify a font for the current frame.




  reply	other threads:[~2014-08-26  4:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-24 23:29 Is Default face a per frame attribute or a global one? Alexandros Prekates
2014-08-25  5:54 ` Alex Kost
2014-08-25 10:07   ` Alexandros Prekates
2014-08-25 12:03     ` Alex Kost
2014-08-25 23:07       ` Alexandros Prekates
2014-08-26  4:55         ` Alex Kost [this message]
2014-08-27  1:49           ` Alexandros Prekates

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k35vn92v.fsf@gmail.com \
    --to=alezost@gmail.com \
    --cc=aprekates@openmailbox.org \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.