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#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes Date: Wed, 01 Jan 2025 21:39:50 +0200 Message-ID: <86ldvul3w9.fsf@gnu.org> References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> <86seqps9v4.fsf@gnu.org> <8634impkrb.fsf@gnu.org> <71m50+9qm4uxqup7x3scw9xa@mina86.com> <864j32o0hm.fsf@gnu.org> <86pll6l5zm.fsf@gnu.org> <7okn4mf143680yga1fqtbdbf@mina86.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36118"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 74876@debbugs.gnu.org To: Michal Nazarewicz Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jan 01 20:41:18 2025 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 1tT4aj-0009Ez-VO for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 01 Jan 2025 20:41:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tT4aa-0001I2-Bc; Wed, 01 Jan 2025 14:41:08 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tT4aX-0001Hk-SH for bug-gnu-emacs@gnu.org; Wed, 01 Jan 2025 14:41:05 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tT4aU-00073F-Me for bug-gnu-emacs@gnu.org; Wed, 01 Jan 2025 14:41:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-version:References:In-Reply-To:From:Date:To:Subject; bh=ZExniL2l9XaZcVF3Kwli7y2V0MevKG3ZvE8YqD8qguQ=; b=t9uqOLm1ykfE0eVQp4j1Vv72QXSMbO4oga/Ynpnqjxs0WW4ETRX7CgFauyfuOZsjT8iwCFe6h+Hsvldv/4jJiaBZNPNCFAh8yjXdXgmWbcMLLFTLp/WjhSYsae0/lbvV0JFKgjZmCPhlgX23ptVsnYhsCwk/H7u4PxsmHF9/pRmp33Q+lWkPaYJuFQiXV5JlsNWnnRzTah7cflTzFbmokU+upHvZ8Lr/bswdg7WcxpHzaFY4j5xRKkRFVXwp6WEdbNhhacUBNslwXBFd7Fvr8k9SrDYKLS9UV5S5+29KA5cslABStP5pdB6c4aJt/+8wt8Mlj0an54PG7jMJb4H9EQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tT4aU-00012N-Eu for bug-gnu-emacs@gnu.org; Wed, 01 Jan 2025 14:41:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 01 Jan 2025 19:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74876 X-GNU-PR-Package: emacs Original-Received: via spool by 74876-submit@debbugs.gnu.org id=B74876.17357604323932 (code B ref 74876); Wed, 01 Jan 2025 19:41:02 +0000 Original-Received: (at 74876) by debbugs.gnu.org; 1 Jan 2025 19:40:32 +0000 Original-Received: from localhost ([127.0.0.1]:40525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tT4Zz-00011M-Jz for submit@debbugs.gnu.org; Wed, 01 Jan 2025 14:40:31 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58544) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tT4Zx-000113-NY for 74876@debbugs.gnu.org; Wed, 01 Jan 2025 14:40:30 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tT4Zr-0006qo-Es; Wed, 01 Jan 2025 14:40:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=ZExniL2l9XaZcVF3Kwli7y2V0MevKG3ZvE8YqD8qguQ=; b=m/Y0HyNf6PnyxivarAIJ pzBMykj0BeMQ1K6jrrqJ33ax/QWRWmbVOdKR8A65H6VW3/+j3TXkj1O8ZlMJLjCcheRrm3nIvgha2 ta6Bhf8o1u/Oqp00sfALY2Rmd9OLfqdFGYwAATDuxszdczH4UXzF2Od673EgXWtNdCrke9Xvk7vO+ 2C732rrhrtynPNN/veIQHW54G8qbnPeAUeZ+r0zNSVIvY5QBKvd1J8HWUzc0+kNT3ea5+vBIhpGui hXSrJFZD9VxGJjMPzCrDSuGM/mFEwEQo23vnACoSDUPjFmb+ly+wAU0OnxIZ81L/d81c5XQ/fW8H+ XWZH+fvVCLIjLw==; In-Reply-To: <7okn4mf143680yga1fqtbdbf@mina86.com> (message from Michal Nazarewicz on Wed, 01 Jan 2025 20:02:45 +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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:298072 Archived-At: > From: Michal Nazarewicz > Cc: 74876@debbugs.gnu.org > Date: Wed, 01 Jan 2025 20:02:45 +0100 > > On Wed, Jan 01 2025, Eli Zaretskii wrote: > >> From: Michal Nazarewicz > >> Cc: 74876@debbugs.gnu.org > >> Date: Wed, 01 Jan 2025 19:14:40 +0100 > >> > >> On Tue, Dec 17 2024, Eli Zaretskii wrote: > >> > You have: declare this feature impossible to implement in a reasonable > >> > way, given the restrictions of the current display engine design and > >> > implementation. > >> > > >> > At the very least, I hope you will document this for the users, so > >> > they are not surprised. > >> > >> pulse.el forces 10 refreshes every 30 ms. If that’s acceptable for > >> package which is part of Emacs, a single refresh when people switch > >> windows is good enough for a third-party package. > > > > pulse.el typically refreshes only a small portion of a window, and > > therefore redisplay will only redraw that portion. So this doesn't > > normally lead to flickering (unless you pulse a large portion of the > > window). > > pulse.el changes face which forces refresh just as I described in this > thread. If you’re saying Emacs is smart enough to notice that only > small portion of the window needs refreshing It is. > this should also be true in my case where only fringes need > refreshing. I was talking about your suggestion to redraw the entire frame. That will definitely cause flickering. The way we avoid redrawing the portions of the window which didn't change only work on the text area, not on the fringes and other window/frame decorations. It is, of course, possible to redesign how fringes are redrawn so that we won't need to redraw the entire frame, but this exactly the redesign I was saying would be needed to avoid the flicker. IOW, with the existing code you either have the partial redrawing of the fringes, or you can force the entire frame be redrawn and get flickering.