Subject: bug#12419: Mouse click changes layout

From: martin rudalics <[email-masked]>
Date: Wed, 26 Sep 2012 14:43:22 +0200

> Sorry, I don't understand what you mean by "drawing over a previous
 > column/row".  Which "previous" column/row are we talking about?

For example, when we draw the mode-line of a window: Do we first clip
the glyphs on the bottom of the last proper line of the window or do we
draw them unclipped and afterwards draw the mode-line on top of it so it
obscures the lower part of the window line?

 > A window must always start with a fully-visible line (unless it's the
 > only line), so in that sense a window always starts at an integral
 > number of lines.  But it doesn't have to _end_ with a fully-visible
 > line.
 >
 > Does this explain why the above is not a problem?

Yes.  So the event reporting mechanism fully supports windows that
display partially visible lines.

 >> Consider a two window frame, the upper window has 5 lines the lower
 >> window has 6 lines but in fact both are shown with 5.5 lines.
 >
 > Can't happen: a window that displays 5.5 lines must have 6 lines, or
 > else the glyphs for the last half-line will have no place in the glyph
 > matrix.

Let's say the TTY equivalent of the upper window would display 5 lines.

 >> Now I
 >> enlarge the upper window by one line.  Currently this makes a 6 to 5
 >> lines frame.  Would it make a 6.5 to 4.5 frame with the new code or a 6
 >> to 5 lines frame?
 >
 > It's up to us.  The easiest (and also the least surprising, IMO) would
 > be to resize from (5.5, 5.5) to (6.5, 4.5), i.e. by one full line.

In this case the TTY equivalent would display (6, 5) lines.

 >> For implementing something like `count-screen-lines-to-pixels' and get
 >> rid of that crazy loop where we calculate `pos-visible-in-window-p' and
 >> resize the window.
 >
 > I think pos-visible-in-window-p is what you need.

Currently it loops calling `pos-visible-in-window-p' until the position
is visible.  How avoid that loop?

martin