all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alexandros Prekates <aprekates@openmailbox.org>
To: Alex Kost <alezost@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Is Default face  a per frame attribute or a global one?
Date: Wed, 27 Aug 2014 04:49:44 +0300	[thread overview]
Message-ID: <53FD3938.7040508@openmailbox.org> (raw)
In-Reply-To: <87k35vn92v.fsf@gmail.com>


On 26/08/2014 07:55 πμ, Alex Kost wrote:
> 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.
>

Thanks. That makes things more clear now.

set-frame-font --> set-face-attribute --> 
internal-set-lisp-face-attribute (c function).
That last one somehow implements the 
http://www.emacswiki.org/emacs/FacesPerFrame funtionality.

Although i 'm curious  of how you do  that in a non-OO language :-)

Alexandros




      reply	other threads:[~2014-08-27  1:49 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
2014-08-27  1:49           ` Alexandros Prekates [this message]

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=53FD3938.7040508@openmailbox.org \
    --to=aprekates@openmailbox.org \
    --cc=alezost@gmail.com \
    --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.