GNU bug report logs - #42406
Mouse-wheel scrolling can be flickering

Previous Next

Package: emacs;

Reported by: Konrad Podczeck <konrad.podczeck <at> univie.ac.at>

Date: Fri, 17 Jul 2020 15:37:02 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: martin rudalics <rudalics <at> gmx.at>
Cc: alan <at> idiocy.org, konrad.podczeck <at> univie.ac.at, 42406 <at> debbugs.gnu.org
Subject: bug#42406: Mouse-wheel scrolling can be flickering
Date: Fri, 18 Dec 2020 13:45:49 +0200
> Cc: konrad.podczeck <at> univie.ac.at, alan <at> idiocy.org, 42406 <at> debbugs.gnu.org
> From: martin rudalics <rudalics <at> gmx.at>
> Date: Fri, 18 Dec 2020 09:39:35 +0100
> 
>  > The non-selected frames shouldn't.  But the selected frame should,
>  > because it needs to re-evaluate its frame title.  And we don't have
>  > any means to tell the display engine to consider only the frame title
>  > on a single frame.  We only have the means to tell it which windows on
>  > which frames may need redrawing, but the frame's title doesn't belong
>  > to any window.
> 
> In redisplay_window we set
> 
>    update_mode_line = (w->update_mode_line
> 		      || update_mode_lines
> 
> where w is the window we redisplay because it got scrolled.  Later down
> we have
> 
>    if (update_mode_line
>        && EQ (FRAME_SELECTED_WINDOW (f), window))
>      {
>        ...
>        gui_consider_frame_title (w->frame);
> 
> so we do update the frame title after the frame's selected window got
> scrolled.  What am I missing?

This, I think:

  if (current_matrix_up_to_date_p
      && (rc = try_cursor_movement (window, startp, &temp_scroll_step),
	  rc != CURSOR_MOVEMENT_CANNOT_BE_USED))
    {
      switch (rc)
	{
	case CURSOR_MOVEMENT_SUCCESS:
	  used_current_matrix_p = true;
	  goto done;

IOW, we might think that nothing needs to be updated except perhaps
the cursor position, and then fail to update the frame's title.

And maybe there are more loopholes like this one, I didn't try to scan
the code too thoroughly.

>  >> Not in Fmake_frame_invisible AFAICT.
>  >>
>  >>   > although the comment seems to hint on the
>  >>   > reason.
>  >
>  > What about that comment? doesn't it explain the reason?  AFAIU, that
>  > reason is the need to re-evaluate the menu bar.
> 
> Because we just made a frame invisible?  The only thing we could grey
> out on a menu in such a case is C-x 5 o and that's not what I see.  And
> if it were there, we'd have to handle it in Fmake_frame_visible as well.

This code is old (1994), maybe it tries to handle a problem that no
longer exist?  Who knows how the Buffers menu looked back then?




This bug report was last modified 4 years and 26 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.