Subject: bug#32848: 26.1; follow-mode cursor move breaks with frame-resize-pixelwise

From: Alan Mackenzie <[email-masked]>
Date: Mon, 15 Oct 2018 09:23:41 +0000

Hello, Eli.

It's been a couple of weeks since your last post, which I'm only just now
answering, so here's a quick summary:

1. Original bug: in follow mode, moving point into a partially displayed
line at end-of-window, then onto the next line, caused the LH window to
scroll up rather than point being moved into the RH window.

2. I wrote a patch to follow-mode (now installed on the emacs-26 branch)
which would move point away from that critical line, allowing follow-mode
to work.

3. You wrote a patch to the C code (now installed on master) whereby
make-cursor-line-fully-visible can be a function.  I wrote a function for
this (not yet installed) which returned nil for non-last follow windows.

4. The strategy in 3. was problematic, since C-x o into a follow window
where point was on the partially displayed last line wouldn't work -
follow-mode moved the cursor back into the original window.

5. I suggested that we use the solution in 2. for master, too, discarding
3.  You countered by asking what would happen if a window's first line is
taller than the window.  (See below.)

On Mon, Oct 01, 2018 at 16:47:29 +0300, Eli Zaretskii wrote:
> > Date: Mon, 1 Oct 2018 12:33:36 +0000
> > Cc: [email-masked], [email-masked], [email-masked]
> > From: Alan Mackenzie <[email-masked]>

> > > But on master, I think we need both this patch and a special function
> > > that sets make-cursor-line-fully-visible nil in non-last windows under
> > > follow-mode, because that's definitely what follow-mode wants.

> > I don't understand what this would be for.  With my patch from the last
> > post, I don't think any window's point would ever be left by follow-mode
> > in a partially displayed line.  Maybe the function I've written
> > (follow-make-cursor-line-fully-visible-p) might be useful sometime in
> > the future.

> Did you try a buffer whose first line is very tall, taller than the
> window?

I've tried a few ways of getting such a window, but without luck.  Emacs
is very good at making sure a window is no smaller than one line tall.
;-)

Is it possible to create such a line in a window, probably with lisp?  Or
was your question more a prompt to me to handle this unlikely situation
gracefully?

-- 
Alan Mackenzie (Nuremberg, Germany).