unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: konrad.podczeck@univie.ac.at, 42406@debbugs.gnu.org
Subject: bug#42406: Mouse-wheel scrolling can be flickering
Date: Sun, 13 Dec 2020 19:46:04 +0000	[thread overview]
Message-ID: <X9ZvfMy13DlOSAkp@breton.holly.idiocy.org> (raw)
In-Reply-To: <83sg89cyrq.fsf@gnu.org>

On Sun, Dec 13, 2020 at 09:05:29PM +0200, Eli Zaretskii wrote:
> > Date: Fri, 11 Dec 2020 20:37:56 +0000
> > From: Alan Third <alan@idiocy.org>
> > Cc: konrad.podczeck@univie.ac.at, 42406@debbugs.gnu.org
> > 
> > > Any pointers to the code which causes all the frames to be updated in
> > > C-v/M-v case?
> > 
> > I don't know. I'm looking at redisplay_internal in a debugger and I
> > can see that consider_all_windows_p is true, which will be because
> > windows_or_buffers_changed == 2 == REDISPLAY_SOME or because
> > update_mode_lines == 42.
> > 
> > I can't find anywhere that sets update_mode_lines to 42...
> 
> wset_update_mode_line does it, so any caller of that function would.
> 
> But where do you see the value of 42 being tested?

I've got two frames open, I set up a breakpoint in
ns_clear_under_internal_border and scroll. When I hit the breakpoint
for the frame I don't expect to be updated I get this backtrace:

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001001eb35f temacs`ns_clear_under_internal_border(f=0x000000010711cea0) at nsterm.m:3036:7 [opt]
    frame #1: 0x0000000100029cd5 temacs`redisplay_internal at xdisp.c:16030:21 [opt]
    frame #2: 0x00000001000cb1d5 temacs`read_char(commandflag=1, map=0x0000000107d635c3, prev_event=0x0000000000000000, used_mouse_menu=0x00007ffeefbff36b, end_time=0x0000000000000000) at keyboard.c:2496:6 [opt]
    frame #3: 0x00000001000c8e72 temacs`read_key_sequence(keybuf=<unavailable>, prompt=0x0000000000000000, dont_downcase_last=<unavailable>, can_return_switch_frame=<unavailable>, fix_current_buffer=<unavailable>, prevent_redisplay=<unavailable>) at keyboard.c:9483:12 [opt]
    frame #4: 0x00000001000c756c temacs`command_loop_1 at keyboard.c:1353:15 [opt]
    frame #5: 0x000000010014dd17 temacs`internal_condition_case(bfun=(temacs`command_loop_1 at keyboard.c:1239), handlers=0x0000000000000090, hfun=(temacs`cmd_error at keyboard.c:922)) at eval.c:1415:25 [opt]
    frame #6: 0x00000001000d7670 temacs`command_loop_2(ignore=<unavailable>) at keyboard.c:1094:11 [opt]
    frame #7: 0x000000010014d53b temacs`internal_catch(tag=0x000000000000c9f0, func=(temacs`command_loop_2 at keyboard.c:1090), arg=0x0000000000000000) at eval.c:1176:25 [opt]
    frame #8: 0x0000000100212935 temacs`command_loop.cold.1 + 69
    frame #9: 0x00000001000c6633 temacs`command_loop at keyboard.c:1072:2 [opt]
    frame #10: 0x00000001000c6563 temacs`recursive_edit_1 at keyboard.c:720:9 [opt]
    frame #11: 0x00000001000c67bb temacs`Frecursive_edit at keyboard.c:789:3 [opt]
    frame #12: 0x00000001000c5343 temacs`main(argc=<unavailable>, argv=0x00007ffeefbff810) at emacs.c:2054:3 [opt]
    frame #13: 0x00007fff712cd3d5 libdyld.dylib`start + 1* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001001eb35f temacs`ns_clear_under_internal_border(f=0x000000010711cea0) at nsterm.m:3036:7 [opt]
    frame #1: 0x0000000100029cd5 temacs`redisplay_internal at xdisp.c:16030:21 [opt]
    frame #2: 0x00000001000cb1d5 temacs`read_char(commandflag=1, map=0x0000000107d635c3, prev_event=0x0000000000000000, used_mouse_menu=0x00007ffeefbff36b, end_time=0x0000000000000000) at keyboard.c:2496:6 [opt]
    frame #3: 0x00000001000c8e72 temacs`read_key_sequence(keybuf=<unavailable>, prompt=0x0000000000000000, dont_downcase_last=<unavailable>, can_return_switch_frame=<unavailable>, fix_current_buffer=<unavailable>, prevent_redisplay=<unavailable>) at keyboard.c:9483:12 [opt]
    frame #4: 0x00000001000c756c temacs`command_loop_1 at keyboard.c:1353:15 [opt]
    frame #5: 0x000000010014dd17 temacs`internal_condition_case(bfun=(temacs`command_loop_1 at keyboard.c:1239), handlers=0x0000000000000090, hfun=(temacs`cmd_error at keyboard.c:922)) at eval.c:1415:25 [opt]
    frame #6: 0x00000001000d7670 temacs`command_loop_2(ignore=<unavailable>) at keyboard.c:1094:11 [opt]
    frame #7: 0x000000010014d53b temacs`internal_catch(tag=0x000000000000c9f0, func=(temacs`command_loop_2 at keyboard.c:1090), arg=0x0000000000000000) at eval.c:1176:25 [opt]
    frame #8: 0x0000000100212935 temacs`command_loop.cold.1 + 69
    frame #9: 0x00000001000c6633 temacs`command_loop at keyboard.c:1072:2 [opt]
    frame #10: 0x00000001000c6563 temacs`recursive_edit_1 at keyboard.c:720:9 [opt]
    frame #11: 0x00000001000c67bb temacs`Frecursive_edit at keyboard.c:789:3 [opt]
    frame #12: 0x00000001000c5343 temacs`main(argc=<unavailable>, argv=0x00007ffeefbff810) at emacs.c:2054:3 [opt]
    frame #13: 0x00007fff712cd3d5 libdyld.dylib`start + 1

Which I've not found very useful. I had a look at redisplay_internal
to see if I could work out why the frame is being updated, but I
can't.

I looked at some of the variables in redisplay_internal that are
involved in making the decision whether to check all frames:

(lldb) p update_mode_lines;
(int) $0 = 42
(lldb) p windows_or_buffers_changed
(int) $1 = 2

but I have no idea if this is useful at all.

Is there anything specific you'd like me to check?
-- 
Alan Third





  reply	other threads:[~2020-12-13 19:46 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-17 15:36 bug#42406: Mouse-wheel scrolling can be flickering Konrad Podczeck
2020-07-19 13:33 ` Alan Third
2020-07-19 20:29   ` Konrad Podczeck
2020-07-22 20:16     ` Alan Third
2020-07-30 10:30       ` Konrad Podczeck
2020-08-01 13:12         ` Alan Third
2020-10-10  9:51         ` Alan Third
2020-10-10 14:07           ` Konrad Podczeck
2020-12-10 17:14             ` Konrad Podczeck
2020-12-10 22:10               ` Alan Third
2020-12-11  8:18                 ` Eli Zaretskii
2020-12-11 20:37                   ` Alan Third
2020-12-13 19:05                     ` Eli Zaretskii
2020-12-13 19:46                       ` Alan Third [this message]
2020-12-14  0:20                         ` Konrad Podczeck
2020-12-14 15:47                           ` martin rudalics
2020-12-14 20:46                             ` Konrad Podczeck
2020-12-15  7:58                               ` martin rudalics
2020-12-15 13:27                                 ` Konrad Podczeck
2020-12-15 13:51                                   ` martin rudalics
2020-12-15 14:06                                     ` Konrad Podczeck
2020-12-15 15:20                                       ` martin rudalics
2020-12-15 19:31                                         ` Konrad Podczeck
2020-12-15 19:45                                           ` Eli Zaretskii
2020-12-15 19:52                                             ` Konrad Podczeck
2020-12-15 20:05                                               ` Eli Zaretskii
2020-12-15 20:12                                                 ` Konrad Podczeck
2020-12-15 20:32                                                   ` Eli Zaretskii
2020-12-16  8:46                                                 ` martin rudalics
2020-12-16 15:58                                                   ` Eli Zaretskii
2020-12-16  8:46                                           ` martin rudalics
2020-12-16 16:00                                             ` Eli Zaretskii
2020-12-16 16:53                                               ` martin rudalics
2020-12-16 17:18                                                 ` Eli Zaretskii
2020-12-16 18:51                                                   ` martin rudalics
2020-12-16 19:35                                                     ` Eli Zaretskii
2020-12-17  7:29                                                       ` martin rudalics
2020-12-16 20:29                                                     ` Konrad Podczeck
2020-12-17  7:29                                                       ` martin rudalics
2020-12-17 10:19                                                         ` Konrad Podczeck
2020-12-17 13:21                                                           ` martin rudalics
2020-12-17 14:44                                                             ` Eli Zaretskii
2020-12-17 15:13                                                               ` martin rudalics
2020-12-17 16:54                                                                 ` Eli Zaretskii
2020-12-17 17:34                                                                   ` martin rudalics
2020-12-17 18:01                                                                     ` Eli Zaretskii
2020-12-17 23:19                                                                       ` martin rudalics
2020-12-18  7:50                                                                         ` Eli Zaretskii
2020-12-18  8:39                                                                           ` martin rudalics
2020-12-18 11:45                                                                             ` Eli Zaretskii
2020-12-18 13:57                                                                               ` martin rudalics
2020-12-19 10:04                                                                                 ` Eli Zaretskii
2020-12-17 16:40                                                             ` Konrad Podczeck
2020-12-17 17:05                                                               ` martin rudalics
2020-12-17 17:24                                                               ` Eli Zaretskii
2020-12-17 14:04                                                         ` Eli Zaretskii
2020-12-17 15:13                                                           ` martin rudalics
2020-12-17 16:49                                                             ` Eli Zaretskii
2020-12-17 17:34                                                               ` martin rudalics
2020-12-16 21:31                                       ` Alan Third
2020-12-16 23:53                                         ` Konrad Podczeck
2020-12-15 16:52                                 ` Eli Zaretskii
2020-12-15 17:14                                   ` martin rudalics
2020-12-15 18:35                                     ` Eli Zaretskii
2020-12-14 16:17                           ` Eli Zaretskii
2020-12-14 20:48                             ` Konrad Podczeck
2020-12-14 21:01                               ` Eli Zaretskii
2020-12-14 16:12                         ` Eli Zaretskii
2020-12-14 20:25                           ` Alan Third
2020-12-14 20:54                             ` Eli Zaretskii
2020-12-14 21:14                               ` Alan Third
2020-12-15  7:59                               ` martin rudalics
2020-12-15 17:38                                 ` Alan Third
2020-12-15 18:54                                   ` martin rudalics
2020-12-15 19:50                                     ` Alan Third
2020-12-16  8:46                                       ` martin rudalics
2020-12-16 21:35                                         ` Alan Third
2020-12-17 17:47                           ` Stefan Monnier
2020-12-17 18:16                             ` Eli Zaretskii
2020-12-17 19:45                               ` Stefan Monnier
2020-12-17 20:36                                 ` Eli Zaretskii
2020-12-17 21:07                                   ` Stefan Monnier
2020-12-18  7:43                                     ` Eli Zaretskii
2020-12-18 16:22                                       ` Stefan Monnier
2020-12-18 20:42                                         ` Eli Zaretskii
2020-12-18 23:12                                           ` Stefan Monnier
2020-12-19  7:44                                             ` Eli Zaretskii
2020-12-17 19:56                               ` Stefan Monnier
2020-12-17 20:35                                 ` Stefan Monnier
2020-12-17 20:58                                   ` Eli Zaretskii
2020-12-17 21:24                                     ` Stefan Monnier
2020-12-18  7:46                                       ` Eli Zaretskii
2020-12-18 14:41                                         ` Stefan Monnier
2020-12-17 20:47                                 ` Eli Zaretskii
2020-12-17 23:19                             ` martin rudalics
2020-12-17 23:24                               ` Stefan Monnier
2020-12-17 23:29                               ` Stefan Monnier
2020-12-18  7:56                                 ` martin rudalics
2021-05-21 10:23 ` bug#42406: macOS metal rendering engine in mac port Konrad Podczeck
2021-05-21 15:33   ` Aaron Jensen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=X9ZvfMy13DlOSAkp@breton.holly.idiocy.org \
    --to=alan@idiocy.org \
    --cc=42406@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=konrad.podczeck@univie.ac.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).