Subject: bug#14582: 24.3.50.1; Strange overlay behavior, when window-start is inside an overlay.

From: Eli Zaretskii <[email-masked]>
Date: Sun, 27 Feb 2022 10:08:08 +0200

> From: Michael Heerdegen <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Sun, 27 Feb 2022 04:54:02 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Please feel free to submit changes to relevant modes and features to
> > use this new variable.  I use them only very infrequently, and am not
> > annoyed by the issues that started this bug report, so I'm not a good
> > candidate for suggesting such changes or testing them in Real Life.
> > (I thought as soon as the new variable is demonstrated to be able to
> > solve those issues, the patches to the relevant applications will
> > follow immediately, either by Evgeni or by you.)
> 
> But what when I do not what to scroll?

In the context of redisplay, any change of the window-start point is
referred to as "scrolling the window".  So when you tell the display
engine to make sure the window-start is visible, and the last used
window-start isn't, you cannot at the same time ask it not to scroll,
because that's a contradiction.

> > > BTW, did you ever use folding?  I think not as often as I do, else you
> > > would have known the issue we are talking about.  My feedback was not
> > > meant to annoy you - I wanted to share my experience as a user.  Didn't
> > > know that that's irrelevant.
> >
> > It was hardly perceived as irrelevant: I spent some non-trivial time
> > working on this, which I wouldn't do if I haven't thought this is
> > relevant and worth working on.
> 
> I was referring to my latest feedback telling that scrolling is
> suboptimal in my experience in this case, not to the conversation before
> that.

About that, I posted a detailed explanation why I thought the original
problem is fixed now.  How does that count as perceiving your opinions
to be irrelevant?  We surely disagree on this, but disagreement
doesn't mean I consider your opinion irrelevant, and the detailed
responses are the evidence that I didn't.

> Please stay friendly and if you don't agree with what I say, at least
> tell me.

I've re-read every message I posted, and didn't find anything
unfriendly I wrote there.  What I did find was a lot of effort to
explain how this stuff works and why the effect is what it is.  I
thought it will count for something.

> And tell me that a solution without scrolling involved
> is not possible, and why, or why you think that scrolling is
> unavoidable.  You said it can't be avoided when we do something in the
> display engine.

That's not what I said.  Quote:

  It isn't unavoidable, but doing something more sophisticated would
  call for a significantly more complex code.  The current solution for
  when this variable is set and the window-start point is invisible is
  very simple: we recenter the window around point.  The recentering
  method is safe, because it always succeeds, which is why it also
  serves as the fallback method of finding the suitable window-start for
  redisplaying a window.  The code that implements the recentering was
  already there, so the introduction of this new variable boiled down to
  recognizing the conditions under which we should go directly to
  recentering, bypassing all the other methods.

  Anything else would mean a much deeper surgery on the (already
  non-trivially complex) logic of redisplaying a window, whereby we both
  verify that the previous window-start is still usable, and try various
  optimizations to make the redrawing itself as cheap as possible.

> Then maybe we should do it in a different way?  Would
> that be ok for you?  If not, why?

I need a more concrete proposal to answer these questions.  IOW, I
don't think I understand what kind of solution do you have in mind
here.

> > Am I not entitled to my own opinions about how things should be done
> > in Emacs?
> 
> There are other ways to express them.  This is not about different
> opinions.  To be honest, I don't know a lot about your opinion here.  I
> would if you had given me feedback about the problem with scrolling I
> had raised.

I did explain much more than I thought was strictly necessary, in the
hope that you will see my POV.  If you have more questions about those
explanations, feel free to ask.

> That message was not a friendly or neutral response, at least the part
> about the alternative would be to tell Lars to close the report in 10
> years.  Or was it?

That was an (obviously failed) attempt to joke about the practice not
to close bug reports where there's nothing left to do, that's all.
Why you saw that as unfriendly, and against you on top of that, I
don't think I understand; I certainly didn't mean that.

> You just ignored what I said and told the bug should be closed.  If
> you intended to say something different, I don't know, I can only answer
> and react to what you wrote.  Saying "Bug should be closed" without
> replying to mentioned problems just sounds like "the discussion is
> over".

I didn't "just ignore" what you said.  I posted 2 detailed
explanations why my opinion is different:

  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=14582#112
  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=14582#118

The latter explicitly provides, in a very detailed manner, my reasons
why I think this bug should be closed.