Subject: Re: bug#12419: Mouse click changes layout

From: Eli Zaretskii <[email-masked]>
Date: Tue, 25 Sep 2012 14:09:09 +0200

> Date: Tue, 25 Sep 2012 11:58:04 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
>  > Where in the code or the infrastructure do we enforce an integral
>  > number of lines in a window?
> 
> All over the window handling code, presently.

Can you humor me with a typical example, please?

>  > AFAIK, the only restriction imposed by the display engine is that a
>  > window's first line must be completely visible (unless its height is
>  > larger than the window).  But the last line of a window can be only
>  > partially visible.  That seems to imply that you should be able to
>  > split a window such that each child gets exactly half, in pixels.
> 
> I'm afraid that many people wouldn't want that.

Why?  Emacs doesn't promise to have the last line visible even now, if
the window has variable size fonts.  What we currently do promise
(IIUC) is to have each window's height an integral multiple of the
default face's height.  But if the window shows no characters with the
default face, that contract is irrelevant anyway.

> So even if we manage to provide really maximized frames, the window
> handling code will have to show most windows with fully visible
> lines.

See above: you cannot guarantee that.

>  > What am I missing?
> 
> Not much, I suppose.  After the freeze we can set up a branch for
> implementing frame and window sizes in pixels.

Do we really need such a change?  What damage could be caused by
accepting a window size in integral lines, but producing a window that
is slightly larger or smaller?  Again, this happens today already as
long as non-default faces are displayed in the window.

> And I suppose that we want a function that calculates the number of
> pixels between two buffer positions

Doesn't pos-visible-in-window-p fit the bill already?