all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Yuri D'Elia <wavexx@thregr.org>
Cc: emacs-devel@gnu.org
Subject: Re: Incorrect font weight selected
Date: Sat, 18 Dec 2021 13:41:52 +0200	[thread overview]
Message-ID: <83ilvmb0n3.fsf@gnu.org> (raw)
In-Reply-To: <87o85ef8rg.fsf@wavexx.thregr.org> (message from Yuri D'Elia on Sat, 18 Dec 2021 11:43:25 +0100)

> From: Yuri D'Elia <wavexx@thregr.org>
> Cc: emacs-devel@gnu.org
> Date: Sat, 18 Dec 2021 11:43:25 +0100
> 
> or it didn't set the correct resolution according to the current
> fontconfig settings for example, but it does both correctly.
> 
> Why would it change only the weight selection?

I don't know.

I don't have access to any system where this happens, so I cannot step
through the code to see what happens there.  You (or someone else) are
welcome to do that and see what happens there.  Maybe we will then be
able to make this less surprising and confusing.

> I assumed that when setting the default font (by calling
> set-face-attribute with FRAME set to nil) the actual face selection
> would be effectively delayed until frame creation time. I guess this is
> incorrect - i/e font selection is done immediately?

Yes.

> Ideally I'd want nil (default). If I do that, it seems to work
> correctly. However in such case I'd also need to ensure I call this hook
> once, not for every frame (the main reason I didn't bother calling this
> in a make-frame hook) and gets slower as I add frames.

You could use a simple flag variable for that.

> If I use "t" to set the current frame only, I get a completely different
> font size: smaller in fact. However, this only holds if I _never_ set
> the "default frame".
> 
> If I evaluate instead:
> 
> (set-face-attribute 'default nil ...)
> (set-face-attribute 'default t ...)
> 
> where "..." is the same face selection. In such case, setting the
> default frame somewhat alters permanently what setting the current frame
> will do. The second call to set-face-attribute doesn't give me the
> smaller face, instead it gives me the same face twice.
> 
> I'm totally confused as of why this happens.

Welcome to the club.  The code which selects fonts in Emacs is quite
complex and notoriously under-documented.  On top of that, we don't
have any experts on board who are familiar with that code and can
readily answer questions such as this one.  The only way to
investigate is to step through the code, starting in xfaces.c (where
we process set-face-attribute), and following into font.c and
fontset.c, where the font selection actually happens.



  reply	other threads:[~2021-12-18 11:41 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-17 14:51 Incorrect font weight selected Yuri D'Elia
2021-12-17 18:55 ` Eli Zaretskii
2021-12-17 19:47   ` Yuri D'Elia
2021-12-17 20:27     ` Eli Zaretskii
2021-12-17 21:25       ` Yuri D'Elia
2021-12-18  6:32         ` Eli Zaretskii
2021-12-18 10:43           ` Yuri D'Elia
2021-12-18 11:41             ` Eli Zaretskii [this message]
2021-12-18 12:00               ` Yuri D'Elia
2021-12-18 12:49                 ` Eli Zaretskii
2021-12-19 11:14                   ` Yuri D'Elia
2021-12-19 12:46                     ` Eli Zaretskii
2021-12-19 13:17                       ` Yuri D'Elia
2021-12-19 13:32                         ` Lars Ingebrigtsen
2021-12-19 23:24         ` Yuri D'Elia
2021-12-20 10:34           ` Lars Ingebrigtsen
2021-12-20 19:43             ` Stefan Monnier
2021-12-20 19:52               ` Eli Zaretskii
2021-12-20 20:14                 ` Stefan Monnier
2021-12-20 20:19                   ` Eli Zaretskii
2021-12-21  4:22                     ` Dmitry Gutov
2021-12-21 12:18                       ` Eli Zaretskii
2021-12-21 12:27                         ` Yuri D'Elia
2021-12-21 14:19                           ` Eli Zaretskii
2022-01-05 16:19                             ` Yuri D'Elia
2022-01-05 17:05                               ` Eli Zaretskii
2022-01-05 17:11                                 ` Yuri D'Elia
2022-01-05 18:04                                   ` Eli Zaretskii
2022-01-05 18:08                                     ` Yuri D'Elia
2022-01-05 19:07                                       ` Eli Zaretskii
2022-01-05 23:16                                         ` Yuri D'Elia
2022-01-06  7:09                                           ` Eli Zaretskii
2022-01-06  9:46                                             ` Yuri D'Elia
2022-01-06 12:22                                               ` Eli Zaretskii
2022-01-05 21:57                                       ` Dmitry Gutov
2022-01-05 23:15                                         ` Yuri D'Elia
2022-01-05 23:15                                         ` Yuri D'Elia
2022-01-06  5:15                                       ` Sean Whitton
2022-01-06  0:41                               ` Po Lu
2022-01-06  0:54                                 ` Po Lu
2022-01-06  9:49                                 ` Yuri D'Elia
2022-01-06 12:21                                   ` Eli Zaretskii
2021-12-21 13:52                       ` John ff
2021-12-20 20:05               ` Stefan Monnier
2021-12-20 15:16           ` Eli Zaretskii
2021-12-18 23:26 ` Sean Whitton
2021-12-19  6:44   ` Eli Zaretskii
2021-12-19 11:29     ` Yuri D'Elia
2021-12-19 12:52       ` Eli Zaretskii
2021-12-19 12:57         ` Yuri D'Elia
2021-12-19 13:32           ` Eli Zaretskii
2021-12-19 21:03         ` Sean Whitton
2021-12-19 22:04           ` Yuri D'Elia
2021-12-19 22:39             ` Sean Whitton
2021-12-20 21:59           ` Sean Whitton

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=83ilvmb0n3.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=wavexx@thregr.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.