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

From: Jan Djärv <[email-masked]>
Date: Mon, 13 Sep 2010 20:59:27 +0200

Eli Zaretskii skrev 2010-09-13 14.37:
>> 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?

The resizing is constrained to increments of the font size, so it is not 
possible to resize it manually to a fraction of the font size.
If we remove that constraint by editing the source it will show the same 
behavour, extra pixels are unused at the bottom of the frame.

>
>> 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?

I know it can dispay partial lines, info does that on its first page, for 
example, since the title is in a larger font.

But I don't know of any function that sizes a window by pixels.  All the 
resizing code does is to calculate rows and columns from the pixel sizes and 
the call change_frame_size.  That in turn resizes windows, but just based on 
lines and columns, not pixels AFAIK.

I see that W32 does that also, so how can it be different?

	Jan D.