From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 4543@emacsbugs.donarmstrong.com
Subject: bug#4543: window-full-height-p
Date: Fri, 25 Sep 2009 14:59:51 +0200 [thread overview]
Message-ID: <4ABCBEC7.70901@gmx.at> (raw)
In-Reply-To: <83vdj7tlup.fsf@gnu.org>
>> `window-full-width-p' is based on the definition
>>
>> /* Total width of frame F, in columns (characters),
>> including the width used by scroll bars if any. */
>>
>> #define FRAME_TOTAL_COLS(f) ((f)->total_cols)
>>
>> from frame.h whose semantics I don't understand. Not really simple.
>
> Maybe I can help. What is the difficulty with the semantics of this
> attribute of a frame?
It's merely how this is set in `change_frame_size_1' which does
SET_FRAME_COLS (f, newwidth);
where
#define SET_FRAME_COLS(f, val) \
(FRAME_COLS (f) = (val), \
(f)->total_cols = FRAME_TOTAL_COLS_ARG (f, FRAME_COLS (f)))
and
#define FRAME_TOTAL_COLS_ARG(f, width) \
((width) \
+ FRAME_SCROLL_BAR_COLS (f) \
+ FRAME_FRINGE_COLS (f))
and
#define FRAME_SCROLL_BAR_COLS(f) \
(FRAME_HAS_VERTICAL_SCROLL_BARS (f) \
? FRAME_CONFIG_SCROLL_BAR_COLS (f) \
: 0)
etc ... What are the scrollbars of a frame, I'm asking myself. If we
define a frame as a collection of windows and frame-width as the width
of the widest window in that frame, things are deceptively simple. But
the calculations sketched above are a little over my head.
> What's wrong with this (taken from frame.c:frame-parameters) as the
> frame height:
>
> height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
new_text_lines is for a pending size change and zero otherwise. You
probably mean text_lines whose precise semantics I don't know - what are
canonical characters?
> and then subtract from it the height of the minibuffer window?
>
> The C variable `minibuf_window' should give you the Lisp object that
> holds the minibuffer window, and its `total_lines' attribute should
> give you the height of that window. Or am I missing something?
Then why not use the height of the frame-root-window directly? No need
to subtract one value from the other.
martin
next prev parent reply other threads:[~2009-09-25 12:59 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-24 3:28 bug#4543: window-full-height-p Glenn Morris
2009-09-24 7:04 ` martin rudalics
2009-09-25 6:18 ` Glenn Morris
2009-09-25 7:40 ` martin rudalics
2009-09-25 9:27 ` Eli Zaretskii
2009-09-25 12:59 ` martin rudalics [this message]
2009-09-25 13:38 ` Eli Zaretskii
2009-09-25 15:04 ` martin rudalics
2009-09-25 15:55 ` Eli Zaretskii
2009-09-25 19:05 ` martin rudalics
2009-09-25 20:16 ` Stefan Monnier
2009-09-26 9:45 ` martin rudalics
2009-09-25 14:37 ` Stefan Monnier
2009-09-26 9:45 ` martin rudalics
2009-09-26 11:28 ` Eli Zaretskii
2009-09-26 13:41 ` martin rudalics
2009-09-26 16:27 ` Eli Zaretskii
2009-09-26 19:01 ` martin rudalics
2009-09-26 20:17 ` Eli Zaretskii
2009-09-27 7:49 ` martin rudalics
2009-09-25 17:23 ` Glenn Morris
2009-09-25 19:05 ` martin rudalics
2009-09-25 20:10 ` Stefan Monnier
2009-10-02 7:12 ` Glenn Morris
2009-10-02 8:39 ` martin rudalics
2009-10-02 13:30 ` Stefan Monnier
2009-10-02 15:56 ` martin rudalics
2009-10-02 18:37 ` Glenn Morris
2009-10-03 8:20 ` 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=4ABCBEC7.70901@gmx.at \
--to=rudalics@gmx.at \
--cc=4543@emacsbugs.donarmstrong.com \
--cc=eliz@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 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).