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#75291: Redisplay not updating fringe when face filter changes Date: Sat, 04 Jan 2025 09:12:05 +0200 Message-ID: <86pll3f3y2.fsf@gnu.org> References: <874j2h3yzb.fsf@dancol.org> <8634i1jeai.fsf@gnu.org> <87ttah2hcd.fsf@dancol.org> <86v7uxhv9c.fsf@gnu.org> <87ikqx2dwh.fsf@dancol.org> <86h66hhr3a.fsf@gnu.org> <87ldvrajym.fsf@dancol.org> <867c7bheyp.fsf@gnu.org> <87sepz65pv.fsf@dancol.org> <86wmfbfyka.fsf@gnu.org> <87msg762f2.fsf@dancol.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26878"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 75291@debbugs.gnu.org, mina86@mina86.com To: Daniel Colascione Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 04 08:13:29 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 1tTyLg-0006rS-4L for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 04 Jan 2025 08:13:28 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tTyLK-0004Fn-7k; Sat, 04 Jan 2025 02:13:06 -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 1tTyLH-0004EE-Iv for bug-gnu-emacs@gnu.org; Sat, 04 Jan 2025 02:13:03 -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 1tTyLG-00031R-9V for bug-gnu-emacs@gnu.org; Sat, 04 Jan 2025 02:13:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=References:In-Reply-To:From:Date:To:Subject; bh=n1tSXjDWe0x5hS4auE5FxLswAadXyS5Lg3ERf/eZbvg=; b=WyOsReJYD9v96l1h1VRtpcXgJ2SCJD6bOb5PMDXx78rnLuAP8iAhhYRayxO5VWacXXRWiFxHNJNFvh3U49Xg+C6qKUA3L2SuXjkfmG4DByx2+4SAgF4RtuWtj/Fp/ZAPxQQEeZl+ul3ikHYmWoiAWfpLUYoFtmxGe/9tNEICX+tsP5z7IglAKW0tGBIgQDobOJhb+eeSFzm4LtuQ/Dn1UiW7otMzMpLgKfyVTjwUi8OAc2WD3QQRUZZ87LLC7LADPexSS74HndT35PChQIWn9YCP0ectxLtvvR/dwIr+iI3EWsq90xBMcBivepNB5BLms5SCJ8ZDoQMUAP10W7RP+w==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tTyLG-0007O2-3d for bug-gnu-emacs@gnu.org; Sat, 04 Jan 2025 02:13: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: Sat, 04 Jan 2025 07:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75291 X-GNU-PR-Package: emacs Original-Received: via spool by 75291-submit@debbugs.gnu.org id=B75291.173597473828334 (code B ref 75291); Sat, 04 Jan 2025 07:13:02 +0000 Original-Received: (at 75291) by debbugs.gnu.org; 4 Jan 2025 07:12:18 +0000 Original-Received: from localhost ([127.0.0.1]:53149 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tTyKX-0007Mr-V5 for submit@debbugs.gnu.org; Sat, 04 Jan 2025 02:12:18 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40790) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tTyKV-0007Md-4G for 75291@debbugs.gnu.org; Sat, 04 Jan 2025 02:12:16 -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 1tTyKO-0002wv-GU; Sat, 04 Jan 2025 02:12:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=n1tSXjDWe0x5hS4auE5FxLswAadXyS5Lg3ERf/eZbvg=; b=rvNeJAt/P/yh KWE+XkjhklGRygw55NXQ4a2RtPxK7oAKIo9Mka7NFxwuePVflll7gC5JxaGpDeCv7rdGvAT4hqAZv xYbpi3mn1fxRFb3xBFKjgvwxigi5SpzEYqCl6R/POoi5PtuvAR6vnL5Un4WGRPpDNAfNT7Ka8tn2I fR0vdTxV7yFmdiViyotzb4KML65/eOvLF/QAiFewyRZbTk2Otg6eQy8SoO9t29gg49zAGrTC/uS6x 0LXkgIXHm2iGnIkk8HvlYatOHgKz3MrMzXKMSOa4FbAnpJ7Q7lKTiyVos9cQzIzYzGHMKkLzHLltS pz9fuwOw8hf2Kme0/ETnoQ==; In-Reply-To: <87msg762f2.fsf@dancol.org> (message from Daniel Colascione on Fri, 03 Jan 2025 15:57:37 -0500) 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:298326 Archived-At: > From: Daniel Colascione > Cc: 75291@debbugs.gnu.org, mina86@mina86.com > Date: Fri, 03 Jan 2025 15:57:37 -0500 > > Eli Zaretskii writes: > > >> > Doesn't that only support face remapping with :filtered attribute? > >> > What about the more general case where the fringe face is remapped in > >> > a way that's independent of the windows? > >> > >> That seems to work already. It's only in the fringe that I see problems > >> --- it just doesn't seem worth it to limit the redraw to the fringe. > > > > Sorry, I don't understand. I _was_ talking about the fringe face. > > I misread your question. To answer it: what are the circumstances in > which the effective fringe face can change behind our backs? For example, face remapping via face-remapping-alist. > Any change to a face attribute proper will cause a redraw anyway. Changes in face attributes set the frame's redisplay flag, but that just tells the display engine to disable some radical optimizations, like considering only the selected window and only the line where the cursor is. AFAIU, this will not necessarily cause all the fringes of all the frame's windows to be redrawn, because we only redraw the fringes of the glyph rows that we consider changed. > The face-remap.el functions call force-mode-line-update to make sure > face remapping lists take effect force-mode-line-update sets a buffer-specific flag that disables some redisplay optimizations, but I don't think that guarantees redrawing of all the fringes of all the windows which show that buffer. So I'm not sure we have that covered. But if you have tested that and this actually work, fine; I don't pretend to know for sure this won't work.