Subject: Re: bug#64993: 29.1; scroll-other-window breaks global-hl-line-sticky-flag

From: Eli Zaretskii <[email-masked]>
Date: Tue, 01 Aug 2023 20:20:56 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 01 Aug 2023 13:13:36 -0400
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > global-hl-line-sticky-flag non-nil means the
> > highlight in non-selected windows is not removed:
> >   (defun global-hl-line-maybe-unhighlight ()
> >     "Maybe deactivate the Global-Hl-Line overlay on the current line.
> >   Specifically, when `global-hl-line-sticky-flag' is nil deactivate
> >   all such overlays in all buffers except the current one."
> >
> > So "C-x o" leaves the highlighting overlay in the window that was
> > selected, and it will remain at the same position until that window
> > becomes selected again, because highlighting is moved only in the
> > selected window.
> 
> Yes, this is the implementation, and you have explained how it is buggy.

You may think it's "buggy", but the doc string describes the "buggy"
behavior ("deactivate the overlays in all buffers except the current
one only if the flag is nil").  So it's at least documented, and one
could argue that this is the intended behavior.

> > If you don't like these effects of global-hl-line-sticky-flag, then
> > don't use it.  It's off by default, presumably due to these effects.
> 
> Things which are off by default can still be buggy.

They can, yes.