From: Eli Zaretskii <eliz@gnu.org>
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: Tue, 23 Apr 2013 19:28:51 +0300 [thread overview]
Message-ID: <834nexxlbw.fsf@gnu.org> (raw)
In-Reply-To: <51762F98.9060505@gmx.at>
> Date: Tue, 23 Apr 2013 08:52:08 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: jan.h.d@swipnet.se, esabof@gmail.com, 14233@debbugs.gnu.org
>
> >> change_frame_size has no idea whether it is called for a text or a
> >> graphical frame.
> >
> > That is done very easily, given the frame pointer (which
> > change_frame_size accepts as its 1st argument). E.g.:
> >
> > if (FRAME_WINDOW_P (f))
> > /* do the GUI thing */
>
> A couple of weeks ago I asked you whether HAVE_WINDOW_SYSTEM would be
> sufficient but got no answer :-( The problem is that I'm still not sure
> whether FRAME_WINDOW_P is sufficient. At least in frame.c all
> FRAME_WINDOW_P calls are guarded by HAVE_WINDOW_SYSTEM checks as
>
> #ifdef HAVE_WINDOW_SYSTEM
> if (FRAME_WINDOW_P (XFRAME (this)))
> ...
> #endif
That's because the members of 'struct frame' that are tested by
FRAME_WINDOW_P do not exist unless HAVE_WINDOW_SYSTEM is defined.
Emacs caters to TTY frames both in a build --without-x, where
HAVE_WINDOW_SYSTEM is not defined and none of the X code is compiled;
and in a build that does support GUI frames, but just created a
text-mode frame for some reason. Thus the need to have the code both
ifdef'ed away at compile time and tested at run time.
> so some doubt remains whether this predicate is correctly installed on
> every platform.
There's no doubt: it is, as described above.
> In any case I'd want either an #ifdef or a simple and robust
> predicate without having to care about #ifdefs.
Sorry, you can't, not with the current infrastructure. You must do it
with a predicate that is also protected with an ifdef.
> >> Text frames might want to call it as before using character sizes.
> >
> > On text-mode frames, each character is one pixel. Emacs knows that
> > already.
>
> In the past weeks I started to doubt whether Emacs really knows
> everything it pretends to know.
Maybe so, but "1 character == 1 pixel on TTY frames" does not belong
to any gray areas.
> >> In any case, the callers have to strip space used for tool- or
> >> menubars because change_frame_size does not know whether these are
> >> part of the frame or not.
> >
> > Why can't change_frame_size know that?
>
> The callers should know best whether a toolbar is part of their frames
> or not. But we could obviously teach change_frame_size to check that.
I think all the information is already stored in the frame object.
next prev parent reply other threads:[~2013-04-23 16:28 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 [this message]
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
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=834nexxlbw.fsf@gnu.org \
--to=eliz@gnu.org \
--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).