From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#42406: Mouse-wheel scrolling can be flickering Date: Fri, 18 Dec 2020 13:45:49 +0200 Message-ID: <83zh2b5ocy.fsf@gnu.org> References: <8A9929A0-1C51-4CC7-9EB1-1555788465F0@univie.ac.at> <3FA2BD5E-5EAA-496E-AA2F-83810F62082C@univie.ac.at> <5945639e-0fe1-1308-e9e7-62ef44407e89@gmx.at> <8AF2FA71-E12D-414A-9224-31DCC5528BA9@univie.ac.at> <3a8d5d16-4362-a267-acc6-3f2c845fc8ed@gmx.at> <83zh2d91wh.fsf@gnu.org> <5dfe58f9-cddd-cf7b-5061-8929de3f8995@gmx.at> <83r1np8y9o.fsf@gnu.org> <8505b808-3c5b-7864-fc10-90c8e3409e61@gmx.at> <1a3b1fd6-e438-0c77-d317-576e707930a0@gmx.at> <1950D435-7BC8-41AF-99D5-FD673455B3AE@univie.ac.at> <83tusk7aro.fsf@gnu.org> <31e56bf1-203f-f895-20cd-32bab5e05988@gmx.at> <83pn3874r0.fsf@gnu.org> <5014029f-852f-e52e-3f2f-5f7deeba8d67@gmx.at> <83k0tg71mn.fsf@gnu.org> <25f0682d-5f12-4db2-a913-edd3bb8c0610@gmx.at> <834kkj7dte.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40098"; mail-complaints-to="usenet@ciao.gmane.io" Cc: alan@idiocy.org, konrad.podczeck@univie.ac.at, 42406@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Dec 18 12:46:19 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kqEDC-000AJn-K3 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 18 Dec 2020 12:46:18 +0100 Original-Received: from localhost ([::1]:44990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqEDB-0006Wn-It for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 18 Dec 2020 06:46:17 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:32960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqECv-0006Wa-TV for bug-gnu-emacs@gnu.org; Fri, 18 Dec 2020 06:46:01 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kqECv-00012u-Kc for bug-gnu-emacs@gnu.org; Fri, 18 Dec 2020 06:46:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kqECv-0000g8-Id for bug-gnu-emacs@gnu.org; Fri, 18 Dec 2020 06:46:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Dec 2020 11:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42406 X-GNU-PR-Package: emacs Original-Received: via spool by 42406-submit@debbugs.gnu.org id=B42406.16082919602599 (code B ref 42406); Fri, 18 Dec 2020 11:46:01 +0000 Original-Received: (at 42406) by debbugs.gnu.org; 18 Dec 2020 11:46:00 +0000 Original-Received: from localhost ([127.0.0.1]:37879 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqECt-0000fr-Kc for submit@debbugs.gnu.org; Fri, 18 Dec 2020 06:45:59 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:39770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqECs-0000ff-7t for 42406@debbugs.gnu.org; Fri, 18 Dec 2020 06:45:58 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:52827) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqECj-0000ys-Se; Fri, 18 Dec 2020 06:45:49 -0500 Original-Received: from [176.228.60.248] (port=3302 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqECi-0007pC-Qk; Fri, 18 Dec 2020 06:45:49 -0500 In-Reply-To: (message from martin rudalics on Fri, 18 Dec 2020 09:39:35 +0100) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:196319 Archived-At: > Cc: konrad.podczeck@univie.ac.at, alan@idiocy.org, 42406@debbugs.gnu.org > From: martin rudalics > 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?