Subject: Re: bug#7004: 23.2; In fullscreen mode, the echo area takes too much vertical space

From: Eli Zaretskii <[email-masked]>
Date: Mon, 13 Sep 2010 14:37:13 +0200

> Date: Sat, 11 Sep 2010 09:50:30 +0200
> From: Jan Djärv <[email-masked]>
> Cc: "[email-masked]" <[email-masked]>
> 
> David De La Harpe Golden skrev 2010-09-11 02.10:
> 
> > has support for displaying only part of a character line, at least at the
> > bottom edge of a pane [emacs: window] (not sure about the top). It also
> > supports partial character display at the right/left edge of the pane.

That's right: Emacs does know how to display a partial line at the
bottom of a window (not at the top, though, IIRC).  The question is
why doesn't it happen in the OP's case.

Perhaps that is some unintended side effect of how a frame is
maximized on X (I cannot reproduce the problem on MS-Windows).  What
happens if the frame is enlarged (e.g., by the mouse) instead?

> Windows use code like this all over the place:
> 
> /* Return the frame y-position before which window W ends.
>     This includes a mode line, if any.  */
> 
> #define WINDOW_BOTTOM_EDGE_Y(W) \
>    (((WINDOW_MENU_BAR_P (W) || WINDOW_TOOL_BAR_P (W)) \
>      ? 0 : FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W))) \
>     + WINDOW_BOTTOM_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W))
> 
> 
> i.e. pixels = lines * font height.

No, your conclusion is incorrect.  See the comment above this macro:
this is the Y pixel coordinate _before_ which the window ends.  If the
last line is only partially visible, the this macro will return a
value that is beyond the actual window display area.

IOW, the fact that Emacs counts pixels in increments of the frame's
default font size does not contradict the ability of displaying
partially visible lines at the window bottom.  When I maximize a frame
on Windows, that is what I get: the last line is only partially
visible.  Why doesn't this happen for the OP on X?