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 19:57:02 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 01 Aug 2023 12:28:14 -0400
> 
> 1. emacs -Q
> 2. Eval
> (setq global-hl-line-sticky-flag t)
> (global-hl-line-mode)
> 3. C-x 3  (make two windows)
> 4. C-h n  (make one window contain NEWS)
> 5. C-x o  (switch to the other window)
> 6. Note the line with point is highlighted in both windows
> 6. scroll-other-window
> 7. Note the line with point is no longer highlighted in the NEWS window

And why is this a bug?  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.

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.