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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 15 Sep 2010 21:30:31 +0200

> Date: Wed, 15 Sep 2010 09:00:25 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> IIUC Emacs usually [...] rounds the height to the nearest integer
> multiple of the canonical line height instead.

That's not really relevant, since the height includes the tool bar and
the menu bar, whose sizes aren't multiples of the canonical font
height.  So the windows end up with non-integral number of text lines
anyway.

> So let's assume that we want to move this remainder to the frame root
> window instead.  Now coordinates_in_window from window.c has to
> 
>    "Test if the character at column *X, row *Y is within window W.
>     If it is not, return ON_NOTHING;
>     if it is in the window's text area,
>        set *x and *y to its location relative to the upper left corner
>           of the window, and
>        return ON_TEXT;
>     if it is on the window's modeline, return ON_MODE_LINE;
>     ..."
> 
> but the tests it performs is currently based on things like
> 
> WINDOW_BOTTOM_EDGE_Y
> 
> which is defined as
> 
> #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))
> 
> that is, an integer multiple of the canonical line height of the frame
> of W.  So this does not account for the remainder we want to add and the
> result could be that a mouse click in the window text area is recognized
> as a click on the window's modeline or even another window.  Obviously,
> sampling windows for mouse-autoselection might give strange results as
> well.

If all of this is true, then how do we succeed to display partial
lines with the existing ``pixel-challenged'' display engine?  What am
I missing?