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

From: David De La Harpe Golden <[email-masked]>
Date: Sat, 11 Sep 2010 01:10:47 +0100

On 10/09/10 23:19, Jan Djärv wrote:
>
>
> 10 sep 2010 kl. 18:59 skrev Andreas Schwab<[email-masked]>:
>
>> Jan Djärv<[email-masked]>  writes:
>>
>>> That doesn't matter.  When you say to the window manager to put Eamcs in
>>> fullscreen, the height will be 1024 pixels (if that is what you have).
>>> And there will be a remainder that is not zero.  What do you purpose Emacs
>>> does with this extra space?  Even if we don't have any restrictions, we
>>> can't display a line in this leftover space.
>>
>> It only requires pixel granularity for the window heights to be able to
>> distribute the leftover space to the windows.
>
> That doesn't make sense. Distribute where?  Add one pixel to a random
 > line here and there? Add the leftover pixels to the modeline?
 > That would look bad.
>

I realise that the display engine is, um, a little involved, so mightn't 
be as easy to actually do as it is to say:

So, Emacs has had proportional fonts and variable size fonts for a 
while, and  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.

It's what emacs does right now in other situations - e.g. see the top 
bit of line ";;size14" in attached screenshpt, and also the partial "h" 
at the right end of lines ";;size12" and ";;size13".

Indeed, you'd be wanting the modeline and minibuf to be one whole line 
each (sometimes the minibuf can go multiline, but it'd probably be 
nicest if it sticks to whole lines of characters when it does so where 
possible), but it's pretty unsurprising for a normal multi-line 
scrollable pane to show only part of a line of characters at the end. 
Of course at the same time, snapping to whole characters could be 
considered a feature when resizing, but for a maximized or fullscreen 
window, the ordinary panes seem to me to be aesthetically the least 
worst bit to "give" and go non-integer-character-line-height, avoiding 
the ugly fat border/background shine-through you get around the bottom 
and right of a "maximised" or "fullscreen" window [emacs: frame].

e.g. Noting that the lines AFAIUI can be different pixel heights, with 
the /current/ display engine, I'm just showing them all the same height:

1111111111111111111 ^
1111111111111111111 |
1111111111111111111 |
2222222222222222222 |
2222222222222222222 ordinary emacs pane (3 2/3rd lines)
2222222222222222222 |
3333333333333333333 |
3333333333333333333 |
3333333333333333333 |
4444444444444444444 |
4444444444444444444 v
MMMMMMMMMMMMMMMMMMM ^
MMMMMMMMMMMMMMMMMMM Modeline (1 line)
MMMMMMMMMMMMMMMMMMM v
BBBBBBBBBBBBBBBBBBB ^
BBBBBBBBBBBBBBBBBBB Minibuf (1 line+)
BBBBBBBBBBBBBBBBBBB v