Subject: bug#19298: 25.0.50; `set-frame-font': non-nil FRAMES argument

From: Drew Adams <[email-masked]>
Date: Sun, 7 Dec 2014 12:24:09 -0800 (PST)

The doc string says:

 If FRAMES is non-nil, it should be a list of frames to act upon,
 or t meaning all existing graphical frames.
 Also, if FRAMES is non-nil, alter the user's Customization settings
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 as though the font-related attributes of the `default' face had been
 "set in this session", so that the font is applied to future frames.

I don't understand why a list of frames should alter Customization
settings.

Parameter FRAMES was added for Emacs 24, and it probably hasn't gotten
much use yet.  For code to change the font for a given list of frames
and NOT ALSO screw with the user's customization settings, the code must
select each frame in turn and call `set-frame-font' with a nil FRAMES
arg.  That's silly, no?  I am coming up against this right now.

Hard to believe that there is no simple way to change the font of a
frame and NOT ALSO change custom settings without selecting that frame.

Why does that design make sense?

In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2014-10-20 on LEG570
Bzr revision: 118168 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'