all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org
Subject: Re: Note on e65c307 breaks font-height
Date: Sat, 04 Jun 2016 11:48:10 +0200	[thread overview]
Message-ID: <5752A3DA.3020009@gmx.at> (raw)
In-Reply-To: <83shwtwgyc.fsf@gnu.org>

 >> But it's easier to look at all of them in one and the same customization
 >> buffer.  At least that's what a beginner would do IMO.
 >
 > Not sure about beginners (as this is not newbie stuff at all).  I
 > agree that it would be more convenient to specify them all, but we
 > don't have such a facility.  What you did instead is instruct the font
 > selection process about some of your preferences.  Try stepping
 > through the code which implements font/fontset selection, and if you
 > don't get lost immediately, you will see how many semi-arbitrary
 > decisions that code makes.
 >
 > IOW, the font selection code was not designed to support what you'd
 > like, not in general.  That is why I strongly recommend to just state
 > a specific font of your liking, and move on.

What I did (in the previous century, IIRC) was to select the procedure
that I then considered best supported by the customization interface.
Can you point me to a similar interface for the step you propose?  IOW,
I still think that mine is the way a newbie would use.

 >>   > I'm not sure I follow: isn't the default face supposed to be per
 >>   > frame?
 >>
 >> That's the way it's implemented.  But where do we tell that in our
 >> documentations?
 >
 >   -- Function: face-attribute face attribute &optional frame inherit
 >       This function returns the value of the ATTRIBUTE attribute for FACE
 >       on FRAME.
 >
 > And all the other functions in that node accept the FRAME argument.

IIUC none of these bear any relation to the customization interface.
When someone wants to save a face attribute in her .emacs, she usually
wants to do that for "all frames created in the future".  There's no
specific frame at that time.  And I still don't see where the
customization framework allows or suggests to specifiy a face for a
frame or for "any" frame.

 > It will do no harm, though, to say that explicitly at the beginning of
 > the chapter; patches welcome.

I don't want to talk you into anything.  But I think that this part of
the customization interface is still missing something important.  Till
then, the documentation should describe how to achieve the desired
setting.

 >>   >> Lisp Backtrace:
 >>   >> "internal-set-lisp-face-attribute" (0xffffb4f0)
 >>   >> "set-face-attribute" (0xffffbd70)
 >>   >> "font-setting-change-default-font" (0xffffc620)
 >>   >> "dynamic-setting-handle-config-changed-event" (0xffffcfb0)
 >>   >> "funcall-interactively" (0xffffcfa8)
 >>   >> "call-interactively" (0xffffd460)
 >>   >> "command-execute" (0xffffdd28)
 >>   >
 >>   > Hmm... why is command-execute in the backtrace?  Isn't this Emacs
 >>   > starting up?
 >>
 >> Apparently we get a config-changed-event during start-up.  Does anyone
 >> know how these get injected?
 >
 > I'm not sure I follow: command-execute is called by startup.el only
 > once: if there's a -f SOMETHING command-line argument.  Is that what
 > happened in your case?

No.  The event is stored there by apply_xft_settings in that line

       store_config_changed_event (Qfont_render,
				  XCAR (dpyinfo->name_list_element));

All this is severely underdocumented and undercommented :-(

 > Thanks, I will look into that and see what it tells.

Currently, I defalias ‘dynamic-setting-handle-config-changed-event’ to
‘ignore’.  I don't think we can recommend that to users.  Maybe we
should invent a new option like ‘x-handle-configuration-changes’ which
defaults to t.  Users encoutering problems like me could then set it to
nil in their .emacs.  In any case, I think that this part has not been
given much testing due to the bug Paul uncovered.

martin




  reply	other threads:[~2016-06-04  9:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-26 10:44 Note on e65c307 breaks font-height martin rudalics
2016-05-26 15:05 ` Paul Eggert
2016-05-26 15:22   ` Eli Zaretskii
2016-05-26 15:33     ` Paul Eggert
2016-05-26 15:50       ` Eli Zaretskii
2016-05-26 15:57         ` Paul Eggert
2016-05-26 16:33           ` Eli Zaretskii
2016-05-27 13:18   ` martin rudalics
2016-05-28 10:17     ` Eli Zaretskii
2016-05-29 13:43       ` martin rudalics
2016-05-29 15:07         ` Eli Zaretskii
2016-05-30  8:00           ` martin rudalics
2016-06-04  7:28             ` Eli Zaretskii
2016-06-04  9:48               ` martin rudalics [this message]
2016-06-04 10:52                 ` Eli Zaretskii
2016-06-04 13:07                   ` martin rudalics
2016-05-28 10:38     ` Paul Eggert
2016-05-29 13:43       ` martin rudalics
2016-05-29 17:14         ` Paul Eggert
2016-05-30  8:00           ` martin rudalics
2016-05-26 15:16 ` Eli Zaretskii

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=5752A3DA.3020009@gmx.at \
    --to=rudalics@gmx.at \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@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.