From: "Drew Adams" <drew.adams@oracle.com>
To: "'martin rudalics'" <rudalics@gmx.at>
Cc: esabof@gmail.com, 14233@debbugs.gnu.org
Subject: bug#14233: 24.3; Don't constrain frame size to character multiples
Date: Sun, 28 Apr 2013 08:33:10 -0700 [thread overview]
Message-ID: <7843BFD1369F48989C7E86E60FFA0C0A@us.oracle.com> (raw)
In-Reply-To: <517D1370.5070603@gmx.at>
> Conceptually, `modify-frame-parameters' allows to change several frame
> parameters for the next redisplay. But the outcome depends on the
> evaluation order of the ALIST argument. Suppose you want to change a
> frame's font and size in one and the same call. The result
> would depend on which element is evaluated first due to the fact
> that changing the font allows to change the size of the frame too.
> This is not my idea of clean semantics.
Respecting the order means that it is clear - pretty much equivalent,
presumably, to modifying one frame parameter at a time, in order.
Whether you do that using (a) separate calls, in sequence, to single-parameter
setting functions or (b) using one or more calls to a general setting function
that accepts an alist (which is of course ordered), changes nothing, AFAICT.
Either way, you still have to take into account any interdependence among
parameters.
> > The new value is calculated this way (in frame-cmds.el):...
> > (modify-frame-parameters frame (list (cons 'font fontname)))
>
> I suppose it would be trivial to change this single line to use
> `set-frame-font' in order to deal with the change I propose. But if
> people like the current behavior I can obviously leave things as they
> are now.
1. `set-frame-font' apparently has this side effect, which is not appropriate
here:
Also, if FRAME 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.
(It should say FRAMES, not FRAME, BTW.)
Why does `set-frame-font' not allow you to change the font for a given frame
(besides the selected frame), without also changing face `default' for future
frames?
Interestingly, in Emacs 20 (and in 21 it was essentially the same),
`set-frame-font' just used `modify-frame-parameters' - very clear and simple:
(defun set-frame-font (font-name)
"Set the font of the selected frame to FONT.
When called interactively, prompt for the name of the font to use.
To get the frame's current default font, use `frame-parameters'."
(interactive "sFont name: ")
(modify-frame-parameters (selected-frame)
(list (cons 'font font-name)))
(frame-update-faces (selected-frame)))
;; And `frame-update-faces' was a no-op (obsolete in Emacs 21):
(defun frame-update-faces (frame) nil)
Nowadays, `set-frame-font' is an incomprehensible monster.
2. `modify-frame-parameters' is the basic, general, workhorse function for
frames. It lets you set any number of frame parameters in any order. Yes, I
would very much like it to continue working in the same, straightforward manner,
including for parameter `font'.
next prev parent reply other threads:[~2013-04-28 15:33 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-19 23:58 bug#14233: 24.3; Don't constrain frame size to character multiples E Sabof
2013-04-20 0:17 ` Glenn Morris
2013-04-20 6:45 ` Eli Zaretskii
2013-04-20 8:53 ` martin rudalics
2013-04-20 9:11 ` Jan Djärv
2013-04-20 11:00 ` martin rudalics
2013-04-20 12:56 ` Jan Djärv
2013-04-20 13:13 ` Eli Zaretskii
2013-04-20 19:26 ` Jan Djärv
2013-04-20 19:54 ` Eli Zaretskii
2013-04-20 22:02 ` Drew Adams
2013-04-21 3:40 ` Stefan Monnier
2013-04-21 7:04 ` Jan Djärv
2013-04-21 9:28 ` martin rudalics
2013-04-21 17:05 ` Jan Djärv
2013-04-22 9:34 ` martin rudalics
2013-04-22 14:17 ` Stefan Monnier
2013-04-21 9:27 ` martin rudalics
2013-04-21 9:27 ` martin rudalics
2013-04-20 20:47 ` E Sabof
2013-04-21 9:26 ` martin rudalics
2013-04-21 17:21 ` Jan Djärv
2013-04-22 9:34 ` martin rudalics
2013-04-22 13:11 ` Jan Djärv
2013-04-22 15:36 ` martin rudalics
2013-04-22 16:11 ` Jan Djärv
2013-04-22 16:38 ` martin rudalics
2013-04-22 18:21 ` Eli Zaretskii
2013-04-23 6:52 ` martin rudalics
2013-04-23 16:28 ` Eli Zaretskii
2013-04-24 6:39 ` martin rudalics
2013-04-24 17:13 ` Eli Zaretskii
2013-04-23 11:58 ` Jan Djärv
2013-04-23 12:33 ` martin rudalics
2013-04-23 16:48 ` Eli Zaretskii
2013-04-24 6:39 ` martin rudalics
2013-04-24 16:54 ` Jan Djärv
2013-04-25 7:29 ` martin rudalics
2013-04-25 9:55 ` Jan Djärv
2013-04-25 11:58 ` martin rudalics
2013-04-25 15:47 ` Richard Stallman
2013-04-24 17:15 ` Eli Zaretskii
2013-04-24 17:50 ` Jan Djärv
2013-04-25 7:29 ` martin rudalics
2013-04-20 13:38 ` martin rudalics
2013-04-20 19:33 ` Jan Djärv
2013-04-20 16:22 ` Drew Adams
2013-04-20 17:12 ` Eli Zaretskii
2013-04-20 21:50 ` Drew Adams
2013-04-21 9:27 ` martin rudalics
2013-04-21 16:17 ` Drew Adams
2013-04-20 9:25 ` Eli Zaretskii
2013-04-20 11:01 ` martin rudalics
2013-04-20 11:32 ` Eli Zaretskii
2013-04-20 13:38 ` martin rudalics
2013-04-20 16:25 ` Eli Zaretskii
2013-04-20 17:35 ` martin rudalics
2013-04-20 17:48 ` E Sabof
2013-04-20 18:26 ` Eli Zaretskii
2013-04-21 9:26 ` martin rudalics
2013-04-21 15:03 ` Eli Zaretskii
2013-04-22 9:34 ` martin rudalics
2013-04-21 17:30 ` Jan Djärv
2013-04-22 9:34 ` martin rudalics
2013-04-22 13:12 ` Jan Djärv
2013-04-22 15:36 ` martin rudalics
2013-04-22 18:36 ` Eli Zaretskii
2013-04-23 6:54 ` martin rudalics
2013-04-23 16:29 ` Eli Zaretskii
2013-04-23 6:50 ` martin rudalics
2013-04-23 16:23 ` Eli Zaretskii
2013-04-24 6:38 ` martin rudalics
2013-04-24 17:09 ` Eli Zaretskii
2013-04-24 18:50 ` Stefan Monnier
2013-04-24 20:09 ` Jan Djärv
2013-04-25 7:31 ` martin rudalics
2013-04-25 10:02 ` Jan Djärv
2013-04-25 11:58 ` martin rudalics
2013-04-25 14:11 ` Jan Djärv
2013-04-25 7:30 ` martin rudalics
2013-04-25 7:29 ` martin rudalics
2013-04-25 16:24 ` Eli Zaretskii
2013-04-26 7:42 ` martin rudalics
2013-04-26 13:21 ` Stefan Monnier
2013-04-26 14:39 ` Drew Adams
2013-04-27 6:59 ` martin rudalics
2013-04-27 13:53 ` Drew Adams
2013-04-28 12:17 ` martin rudalics
2013-04-28 15:33 ` Drew Adams [this message]
2013-04-28 16:29 ` Drew Adams
2013-04-29 7:33 ` martin rudalics
2013-04-29 14:10 ` Drew Adams
2013-04-29 16:48 ` martin rudalics
2013-04-29 20:41 ` Drew Adams
2013-04-30 7:34 ` martin rudalics
2013-04-30 15:47 ` Drew Adams
2013-04-30 17:08 ` martin rudalics
2013-04-30 19:45 ` Drew Adams
2013-05-01 9:15 ` martin rudalics
2013-05-01 13:47 ` Drew Adams
2013-05-02 9:22 ` martin rudalics
2013-05-02 13:28 ` Drew Adams
2014-12-25 19:30 ` martin rudalics
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7843BFD1369F48989C7E86E60FFA0C0A@us.oracle.com \
--to=drew.adams@oracle.com \
--cc=14233@debbugs.gnu.org \
--cc=esabof@gmail.com \
--cc=rudalics@gmx.at \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).