From unknown Sat Jun 21 10:15:03 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#74876 <74876@debbugs.gnu.org> To: bug#74876 <74876@debbugs.gnu.org> Subject: Status: 31.0.50; Force fringe refresh / force-window-update not affecting fringes Reply-To: bug#74876 <74876@debbugs.gnu.org> Date: Sat, 21 Jun 2025 17:15:03 +0000 retitle 74876 31.0.50; Force fringe refresh / force-window-update not affec= ting fringes reassign 74876 emacs submitter 74876 Michal Nazarewicz severity 74876 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 14 14:31:16 2024 Received: (at submit) by debbugs.gnu.org; 14 Dec 2024 19:31:16 +0000 Received: from localhost ([127.0.0.1]:48419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMXrA-00031Y-2k for submit@debbugs.gnu.org; Sat, 14 Dec 2024 14:31:16 -0500 Received: from lists.gnu.org ([209.51.188.17]:33022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMXr4-00031A-3A for submit@debbugs.gnu.org; Sat, 14 Dec 2024 14:31:14 -0500 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 1tMXr3-0006Jo-Ez for bug-gnu-emacs@gnu.org; Sat, 14 Dec 2024 14:31:09 -0500 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tMXqy-0000nt-Ki for bug-gnu-emacs@gnu.org; Sat, 14 Dec 2024 14:31:08 -0500 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-a9e44654ae3so417559966b.1 for ; Sat, 14 Dec 2024 11:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734204663; x=1734809463; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face:subject :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=+SmXZCZzJDZ+i5rIWhyhq88ua0d1CnPhuephiOTg7PA=; b=ISjwJbVm2QggGGDfQbUoEW/ewNte/bvleqMQ2rJMhSxrPTXnyE9M6FU7trzMxMdTVV sUNKgI+OJxF5f89P8iMRxweRvXRTKEfq3KBNLLCZR3O0n45Vl2ctVF4fD4tR1ylBzxEY guJRlQkMTKUxGQTNFZ1KVfs+5KBig8CIEprELrAf0C2YksuEU4Uzl5eTqNGg7/dXdzCb ABD+zLV4uQoME/pNABKIUkdjYi7ymiCJ1Wb3oaJuDl/mw2t9yeMxtpJrQlN+sPzzaANi 9RgDoqNV4GDrk4Mzhp3iUoE0RDdsdAdv1P/w4VVBilXlI7FX5EbGlSkoePEhiPtt2G17 DBEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734204663; x=1734809463; h=content-transfer-encoding:mime-version:message-id:date:face:subject :to:from:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+SmXZCZzJDZ+i5rIWhyhq88ua0d1CnPhuephiOTg7PA=; b=ErRaFM2sp6RFrSpsP6Ce0t5sxpfL1EbsFZUARvIYQ/+YpvLz8ksQ323ef/hilGHFXH fbjCYvsJI0osrW9DpSPfN6h/UOq6nz1MdNmdkhUFynWvwOno5MLtYN7pmULN5ca67T+t Bxaq1gCEnTvTydGz7M0IIH6Gk3L9aw/uaN/nM/udFugc6AcJrNpl8g1UEsH9iyb9w+v0 PiU/rvrpbZSNXcsh8IVnWQYZ7Xq3o3vwoqVw0Lco7VfQ12q19OWSacuW2+HgVDPckR1h ktAuGxaLgAJK8gqIw6MRKAmE0rA/dm8jEYWBFcZERqmWeE/Eda+1y9AZmgdAaQSzS73Z zy+Q== X-Gm-Message-State: AOJu0YyNglVYIGxCtH6oeYN14PLcH6C37QOetSse9H5eUZ2awYrVab+J Qa2mE7t5vKn/ALKOejfk//vYtQvbQiEn5G1YkHp5MQVGenRWy8OcUbpK/g== X-Gm-Gg: ASbGnct43k75YBmPM4NQJVP/1/+HNj//Q7/q7SncVP88W+Bek7hjWA/ZWUKWQD3F8pM GZScfA8WkUDsQ1C+MjV7o50ARHVpRVIFDcpBogJIy93XLP8PrlKNwm7RGUBIMAA96aleCbl0Bua 0HR9YGlWfyypgrpb0gH/NZaoMNbtCR7u/X6r8ABfrwUxS1peVcpvO45kA31n372KKbradGE/BRg GDJYidnn94kYQse8DIJWK2kfsSZ+FYH/JDyty0YonnR8lgRBu00f98tMbulUzMMtPKrppRiCmkC Lbiu3w== X-Google-Smtp-Source: AGHT+IH2x4hkosYS8TAW55ZZwiv1nCWB8GmPGQwhiEcXWQVkFGrM9JXWq39EBBb6W+BtO7z28REF1g== X-Received: by 2002:a17:907:7d9e:b0:aa6:8676:3b3b with SMTP id a640c23a62f3a-aab779cf78cmr726896766b.30.1734204662460; Sat, 14 Dec 2024 11:31:02 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aab9600df0csm127232066b.24.2024.12.14.11.31.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Dec 2024 11:31:01 -0800 (PST) From: Michal Nazarewicz To: bug-gnu-emacs@gnu.org Subject: 31.0.50; Force fringe refresh / force-window-update not affecting fringes Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== X-Debbugs-Cc: Date: Sat, 14 Dec 2024 20:31:00 +0100 Message-ID: <7yl87cc0algqh3xvlrywg2z8@mina86.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=mnazarewicz@gmail.com; helo=mail-ej1-x62c.google.com X-Spam_score_int: 8 X-Spam_score: 0.8 X-Spam_bar: / X-Spam_report: (0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MSGID_RANDY=2.599, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I’m implementing fringe dimming in non-selected windows as an extension of the NonGNU ELPA auto-dim-other-buffers package (see ). is a test code which tries to achieve it. The expected behaviour is that after enabling auto-dim-other-buffers-mode defined there, as [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.51.188.17 listed in sa-trusted.bondedsender.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.51.188.17 listed in bl.score.senderscore.com] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [209.51.188.17 listed in list.dnswl.org] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) I=E2=80=99m implementing fringe dimming in non-selected windows as an exten= sion of the NonGNU ELPA auto-dim-other-buffers package (see ). is a test code which tries to achieve it. The expected behaviour is that after enabling auto-dim-other-buffers-mode defined there, as you switch between windows, the fringes of non-selected windows will be red. Alas, it appears that fringes are redrawn lazily such that changing window does not refresh the fringes. For a bit more context, the package uses face-remap-add-relative and :filtered faces, i.e. something like: (face-remap-add-relative 'fringe '(:filtered (:window adob--dim t) auto-dim-other-buffers-fringe-face)) I=E2=80=99ve tried toggling fringe-mode when forcing window update with the below code, but it did not do the trick. (defun adob--force-window-update (object) (force-window-update object) ;; Force fringes to be updated (when fringe-mode (dolist (wnd (if (windowp object) (list object) (get-buffer-window-list object nil t))) (let* ((frame (window-frame wnd)) (params (frame-parameters frame)) (left (alist-get 'left-fringe params)) (right (alist-get 'right-fringe params))) (when (and left right) (modify-frame-parameters frame '((left-fringe nil) (right-fringe nil))) (modify-frame-parameters frame `((left-fringe . ,left) (right-fringe . ,right)))))))) I think what I=E2=80=99d like is for force-window-update to force full frin= ge redraw? Honestly, I haven=E2=80=99t yet dug through all of the window and fringe code so I=E2=80=99m not entirely sure where the main issue lays. Configured using: 'configure --prefix=3D/usr/local --enable-link-time-optimization --with-native-compilation=3Daot --without-dbus --without-gconf --without-gpm --without-gsettings --without-pop --without-selinux --without-systemd --without-toolkit-scroll-bars --with-x --with-x-toolkit=3Dgtk3 --with-xinput2 --with-xml2 --with-tree-sitter 'CFLAGS=3D-O2 -mtune=3Dnative -march=3Dnative -fstack-protector' 'CPPFLAGS=3D-O2 -mtune=3Dnative -march=3Dnative -fstack-protector' 'CXXFLAGS=3D-O2 -mtune=3Dnative -march=3Dnative -fstack-protector'' Configured features: CAIRO FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG SECCOMP SOUND THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_COLLATE: C value of $LANG: en_GB.utf8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: server-mode: t form-feed-mode: t auto-dim-other-buffers-mode: t global-auto-revert-mode: t icomplete-mode: t global-num3-mode: t num3-mode: t global-whitespace-mode: t whitespace-mode: t global-flyspell-mode: t remember-notes-mode: t delete-selection-mode: t windmove-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/mpn/.config/emacs/elpa/transient-20210525.1141/transient hides /usr/l= ocal/share/emacs/31.0.50/lisp/transient ~/.config/emacs/custom hides /usr/local/share/emacs/31.0.50/lisp/custom Features: (shadow emacsbug sort mail-extr notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser format-spec notmuch-wash diff-mode track-changes coolj goto-addr icalendar notmuch-tag notmuch-lib notmuch-compat pcase hl-line mm-view mml-smime smime gnutls dig gnus-alias rot13 message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader cus-edit wid-edit dabbrev checkdoc lisp-mnt shortdoc crm avy misearch multi-isearch cus-start cus-load pulse color pp cl-print help-fns radix-tree time-date auto-package-update easy-mmode dash descr-text server flyspell form-feed init sgml-mode facemenu dom auto-dim-other-buffers face-remap autorevert filenotify comp comp-cstr cl-extra help-mode warnings comp-run comp-common rx icomplete num3-mode disp-table whitespace compile text-property-search comint ansi-osc ansi-color ring ispell remember advice browse-kill-ring delsel ffap thingatpt windmove diary-lib diary-loaddefs cal-menu calendar cal-loaddefs auto-dim-other-buffers-autoloads avy-autoloads browse-kill-ring-autoloads csv-mode-autoloads evil-autoloads gnu-elpa-keyring-update-autoloads gnus-alias-autoloads finder-inf markdown-mode-autoloads notmuch-autoloads protobuf-mode-autoloads sed-mode-autoloads info vterm-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads inotify dynamic-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 257215 704427) (symbols 48 34587 67) (strings 32 82254 29315) (string-bytes 1 2545384) (vectors 16 34779) (vector-slots 8 825430 881688) (floats 8 257 4262) (intervals 56 3296 6731) (buffers 992 19)) --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 14 15:28:24 2024 Received: (at 74876) by debbugs.gnu.org; 14 Dec 2024 20:28:24 +0000 Received: from localhost ([127.0.0.1]:48505 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMYkO-0005vw-TL for submit@debbugs.gnu.org; Sat, 14 Dec 2024 15:28:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54766) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMYkK-0005vf-RZ for 74876@debbugs.gnu.org; Sat, 14 Dec 2024 15:28:18 -0500 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 1tMYkE-0004Fe-3q; Sat, 14 Dec 2024 15:28:10 -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=ttDU3PKCigL69o7L7WfEEM583D+QTcNY4i7u9amF4UU=; b=AA9R5dmItMjJjn1svnaM +W/O6e7T2YImmViUtDoxYHdifozN+F2VB+brog3AZE8SQTI5RWOOuTtFQJWQKCtfTF0FDa00VIlSS D9SzvOTpkpBzJ9tNoKH0uqImaPwtZYwHaWSeLmz0DQZYYDJnBI/oZIoDzhKQ7ulvti6pq9Gti+IzI Ec5L3Xuykd6pvEqkLh5qZyF+A0Al1ZMBMfknX/yKoSoybnUG0rAgpmAlsmG/HtWc1PgIgHO+ql8jE cUiGpn0zvLCvTb16GIjEIx8/ftzznc6W0XtZ3FGlcBgm5qF8sYh7/h65z1fjkiqc3+j3dpM/euxI3 beE4woTpK1NepA==; Date: Sat, 14 Dec 2024 22:28:07 +0200 Message-Id: <86zfkyrovc.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: <7yl87cc0algqh3xvlrywg2z8@mina86.com> (message from Michal Nazarewicz on Sat, 14 Dec 2024 20:31:00 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michal Nazarewicz > Date: Sat, 14 Dec 2024 20:31:00 +0100 > > I’m implementing fringe dimming in non-selected windows as an extension > of the NonGNU ELPA auto-dim-other-buffers package (see > ). > > is > a test code which tries to achieve it. The expected behaviour is that > after enabling auto-dim-other-buffers-mode defined there, as you switch > between windows, the fringes of non-selected windows will be red. > > Alas, it appears that fringes are redrawn lazily such that changing > window does not refresh the fringes. Yes, because redrawing the fringes is expensive, especially in large frames. So I'm not surprised that you see what you see, since no one expected the fringe face to be changed frequently during the session. > For a bit more context, the package uses face-remap-add-relative and > :filtered faces, i.e. something like: > > (face-remap-add-relative > 'fringe > '(:filtered (:window adob--dim t) auto-dim-other-buffers-fringe-face)) > > I’ve tried toggling fringe-mode when forcing window update with the > below code, but it did not do the trick. > > (defun adob--force-window-update (object) > (force-window-update object) > ;; Force fringes to be updated > (when fringe-mode > (dolist (wnd (if (windowp object) > (list object) > (get-buffer-window-list object nil t))) > (let* ((frame (window-frame wnd)) > (params (frame-parameters frame)) > (left (alist-get 'left-fringe params)) > (right (alist-get 'right-fringe params))) > (when (and left right) > (modify-frame-parameters > frame '((left-fringe nil) (right-fringe nil))) > (modify-frame-parameters > frame `((left-fringe . ,left) (right-fringe . ,right)))))))) > > I think what I’d like is for force-window-update to force full fringe > redraw? Honestly, I haven’t yet dug through all of the window and > fringe code so I’m not entirely sure where the main issue lays. Can you show a simple Lisp which could be used to investigate the behavior and perhaps see how what you want could be enabled? It is not easy to do that by having the code of the whole package. Presumably, what the package does to dynamically change the face of the fringe can be done by a short Lisp function, which could then be used from "emacs -Q" to see what prevents the fringe face from being updated immediately. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 14 16:40:27 2024 Received: (at 74876) by debbugs.gnu.org; 14 Dec 2024 21:40:27 +0000 Received: from localhost ([127.0.0.1]:48625 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMZsA-0001GS-Kd for submit@debbugs.gnu.org; Sat, 14 Dec 2024 16:40:26 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:56404) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMZs8-0001GJ-8a for 74876@debbugs.gnu.org; Sat, 14 Dec 2024 16:40:25 -0500 Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-5d3f65844deso4640546a12.0 for <74876@debbugs.gnu.org>; Sat, 14 Dec 2024 13:40:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734212362; x=1734817162; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:from:to:cc:subject :date:message-id:reply-to; bh=GmTCuEHXR3SXsdA7BkZBrelaPaqNqTNqUZiVQ3C94Vs=; b=Mkd43PxU3eo4Tyn2E5J1958ApwyXQy9Y04yXotBogwnWHZZtOB640hYPlO+Ey2Fypx Y9LJCswAzJOAh4C6xEqYzzsIT2wtRvt9HnAZ1XJ3cdrD3Bezm+kqWD8JbxV+/jH5KI/O 26AN5qX9LNVBqnI2/zWLxhA48tKGtwRs/QKIdYh2m9kVGqqc7CrY1QXXcRSC2TPCxN0R fUeT6PIifDflsrME2vnIIADvBl7qHTc8IMcjf4DEXY/MEnMRTmlXi0kN8+myIP5kSmrO kRnyD9oBDWh4OokMjp2qfKKpfxh7/Djn8NE8sQ2aGr97wdZLUp7TV/XQmg+V4RGRq0VM +twQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734212362; x=1734817162; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=GmTCuEHXR3SXsdA7BkZBrelaPaqNqTNqUZiVQ3C94Vs=; b=oEOaCVMxA4fc3gFvzq5HCOFJ91ULqj8t1Ojt2DCOcM4Tv8uDQTwaKC6O68hEQd40Sp u8hlPEJawtUM5zajeubcTdKQRvqDsNLfc7FiRnYcnup5sHK7gP25Rez46Hu13EABEQEo Pau/RT6QqcEHXqk7A5YJ0GWds02fXR8NZEU14r0aVhN063Qy7QJ8tk6aUBFc16RuGHQH jjXmitTTnG+r5fsZPl3/UWI2/rmWUaYH5U4nggTEEgIZ8MUvE3jb3kiTWXvb1Gj44BlW 7LIn1xwtWEkS8EzKR6L2nLBkJD7XIfLM1K7aVkR79RqJXP9WqpQYP52QzkpAtsziauxB //Bg== X-Gm-Message-State: AOJu0YxqWDoCWFvYPH6bthrBHXdA9g7WVG+VZgEI3/NeI5IX5zx2TpwO fThA1OO23hMo6pBlTL+9fHuScOuPXc1GNNA8ccI6LXIBo+nFQ85Mc8lKsg== X-Gm-Gg: ASbGnctm2IkWeao1PsbKed0oZ2+Fjdrn5LBd4pHrxSFiKxKJuxfwESoU4LscY2C0xTN j/LD1EFLQ23fgeYRRRlLzSo5IlR1kVUkW6r08Ro45FQPLSk6lFSG2dqmWWpy9dsBcY268apM/8y mdXu0yHEpZXIZrYvazCnCvZdCNVms4Lxk3uy3P4jLiwD3qD+NONJxdfOrKG6R36eCDDfhSHrgmI zdQSEw6643bqVWGgGNPgq3av1B+K5l+hHJT3/ElyW5IIkk3frqdGH/d6yWqgcS2mn6INkLTUn7S Xu9BDA== X-Google-Smtp-Source: AGHT+IG9fZbRBmeo7AgjDVd+ZzL920Y975pi0xMfSpRRfXzNhyQT3wW9U4EyYmUuGwIjcSAM0KXNcw== X-Received: by 2002:a05:6402:270f:b0:5d0:bcdd:ffa8 with SMTP id 4fb4d7f45d1cf-5d63c2e7bcdmr5773355a12.1.1734212361809; Sat, 14 Dec 2024 13:39:21 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5d652ad1805sm1353491a12.27.2024.12.14.13.39.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Dec 2024 13:39:21 -0800 (PST) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes In-Reply-To: <86zfkyrovc.fsf@gnu.org> References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== Date: Sat, 14 Dec 2024 22:39:19 +0100 Message-ID: <40wpfj26bxd5k4i38c92e0sr@mina86.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Sat, Dec 14 2024, Eli Zaretskii wrote: > Can you show a simple Lisp which could be used to investigate the > behavior and perhaps see how what you want could be enabled? ---- >% Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.85.208.47 listed in sa-trusted.bondedsender.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.47 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.85.208.47 listed in bl.score.senderscore.com] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.47 listed in list.dnswl.org] 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Sat, Dec 14 2024, Eli Zaretskii wrote: > Can you show a simple Lisp which could be used to investigate the > behavior and perhaps see how what you want could be enabled? ---- >% Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.85.208.47 listed in sa-accredit.habeas.com] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.47 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [209.85.208.47 listed in bl.score.senderscore.com] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.47 listed in wl.mailspike.net] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager On Sat, Dec 14 2024, Eli Zaretskii wrote: > Can you show a simple Lisp which could be used to investigate the > behavior and perhaps see how what you want could be enabled? ---- >% ---------------------------------------------------------------- (defvar-local adob-remapping nil) (put 'adob-remapping 'permanent-local nil) (defface adob-test '((t :background "red")) "Test") (defun adob-test-for-each-window (func) (save-current-buffer (dolist (frame (frame-list)) (dolist (wnd (window-list frame)) (set-buffer (window-buffer wnd)) (when (funcall func wnd) (force-window-update wnd)))))) (defun adob-test-update () (let ((face '(:filtered (:window adob-test t) adob-test)) (selected-window (selected-window))) (adob-test-for-each-window (lambda (wnd) (let ((val (eq wnd selected-window)) update) (unless adob-remapping (setq adob-remapping (face-remap-add-relative 'fringe face) update t)) (unless (eq val (window-parameter wnd 'adob-test)) (set-window-parameter wnd 'adob-test val) (setq update t)) update))))) (defun adob-test-on () (interactive) (adob-test-update) (add-hook 'post-command-hook #'adob-test-update)) (defun adob-test-off () (interactive) (remove-hook 'post-command-hook #'adob-test-update) (adob-test-for-each-window (lambda (wnd) (when adob-remapping (face-remap-remove-relative adob-remapping) (setq adob-remapping nil) t)))) ; (adob-test-on) to enable ; (adob-test-off) to disable ---- %< ---------------------------------------------------------------- 1. Open two windows with two long buffers. 2. M-x adob-test-on RET 3. Scroll current window with M-v. 4. Switch to the other window with C-x o. 4. Scroll other window with C-M-v. Expected: at all times, the fringes of the selected window are red while fringes of the other window are grey. Observed: Fringes are updated only when window is scrolled and new lines are shown. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 15 02:07:14 2024 Received: (at 74876) by debbugs.gnu.org; 15 Dec 2024 07:07:14 +0000 Received: from localhost ([127.0.0.1]:49412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMiie-0004ah-Vd for submit@debbugs.gnu.org; Sun, 15 Dec 2024 02:07:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMiiY-0004a2-Hn for 74876@debbugs.gnu.org; Sun, 15 Dec 2024 02:07:10 -0500 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 1tMiiR-00028C-J1; Sun, 15 Dec 2024 02:07:00 -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=Nxqbg29dTCKAWJPb4RnHdx/Uu5TRhGoFHvmbyqiurUU=; b=cqOd13Vwcxlb k8Ly13LIp+ydrnNbvbxZyjmouwM9pwMgGbnhLo31IJEkbmGxoWRT+/6p9cTQNiymMrJCccYrTQ1QP ip3wxPWCHjZ+QQzjxyrEA9NlPvajUmIYtsk6bjS+ksrK8lOMVZD5tu97MwyKEPfDl7qKlnHyou9pM F8Q3RO9rFeoMY41Hs7AIU3p0pqsJPwkO+g9pJtGMseeD1FxR+LT8sMblKVLFuMFBZS8RD4GhyiU++ Gr3k/w4C5N+ZrFHpzWenaZkzN+WU8Ns7tg9uQvD/Shcj0g/DJeLirv06dvdn/1Wwxl03i5H8J8Y96 0dAfzwVzZZc+aZRhbx5sWA==; Date: Sun, 15 Dec 2024 09:06:55 +0200 Message-Id: <86seqps9v4.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: <40wpfj26bxd5k4i38c92e0sr@mina86.com> (message from Michal Nazarewicz on Sat, 14 Dec 2024 22:39:19 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michal Nazarewicz > Cc: 74876@debbugs.gnu.org > Date: Sat, 14 Dec 2024 22:39:19 +0100 > > 1. Open two windows with two long buffers. > 2. M-x adob-test-on RET > 3. Scroll current window with M-v. > 4. Switch to the other window with C-x o. > 4. Scroll other window with C-M-v. > > Expected: at all times, the fringes of the selected window are red while > fringes of the other window are grey. > > Observed: Fringes are updated only when window is scrolled and new lines > are shown. Thanks. I don't think what you want can possibly work, unless we completely redesign how the fringes are updated. The current design is that we update the fringes only on the screen lines where redisplay changed something. Since redisplay goes out of its way to try not to redraw screen lines that don't need redrawing, this means that you cannot reliably force the entire fringe of a window to be redrawn, unless you (almost) completely change what is shown in the window. You can see this if, for example, after step 1 you move the cursor with C-n until point goes out of the window and Emacs scrolls and recenters the window: only the lower half of the window gets its fringes displayed in the red color. That's because the upper part was not redrawn, just scrolled on the screen. Sorry. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 16 16:48:54 2024 Received: (at 74876) by debbugs.gnu.org; 16 Dec 2024 21:48:54 +0000 Received: from localhost ([127.0.0.1]:56560 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNIxR-0003hy-Qn for submit@debbugs.gnu.org; Mon, 16 Dec 2024 16:48:54 -0500 Received: from mail-ed1-f51.google.com ([209.85.208.51]:47257) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNIxP-0003hh-IR for 74876@debbugs.gnu.org; Mon, 16 Dec 2024 16:48:52 -0500 Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5d647d5df90so4909365a12.2 for <74876@debbugs.gnu.org>; Mon, 16 Dec 2024 13:48:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734385666; x=1734990466; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:from:to:cc:subject :date:message-id:reply-to; bh=k4h59cq3CfF6wIxM/C0TUqzkUVtAgm5zDByuxDoMLr4=; b=Ogno96/wmuFlYaGqUfQYoj661Ne0wy4ir+SPm/iFwKUccSTksPlf0kRd8HxmBdqrfV k45RCjh7dF9Xu1zYzE2Kht+/OEOBnyQBW2FHOMgmm7yE0iYbthkRGpvlFGSFUTFiue9+ 7ME/xyLKLUkTIC5pqQqBjKB4SPvlH0POiDRGwlH2r40llzP0dXNsVcq2H6Xw71REnj9n fOCmW96e23oZuIz0+Wevz3EHSvNrvSjvyhJoh1aK158zIGmlReyDCFoj7TExxNrWUQsv 5YHXb6UME7lsRmVVypRsH3lH5h5ZpXItvhjWI4+n4Xv1lXvLILDSwQUMscD0DWgOnLrj tT1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734385666; x=1734990466; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=k4h59cq3CfF6wIxM/C0TUqzkUVtAgm5zDByuxDoMLr4=; b=lHWOqzTruGhPRqpM0voSixZ70KQA8C/ig3k/VP1PNtaqPCnR/VaWSaE8TimpM6nbas UsG+Vii0E1vKm3c2LxCMr1XhPn5Otx0l4c8Q2b9Phsl34o/pxs2X716ro+1rEPuYweh6 CnR0xO9/QFeyWhD1bRO4zbCnsP4cOJXc7fE9fh5LpVyUpiz7/zH1x5Lq4NG9IU5cTw+T VOKhXl0LoKiqVf+952AmlnXMzwvE9VzHT2rVc4iMHA1AktmJ2CNUmYuiPd1wWPQf+SsJ LGOUS3uVVc5mnEW/TU4z4hUF0/6gt5JIflWfg409EOSvGmFze+CPOJOvC9y+vwMt5DPK H/kQ== X-Gm-Message-State: AOJu0Yz2KFs8X5zc74+gWir70o3ywwDNj3SdFs/jRJFmOLICbUMH+4nT DsnMzqnTIi0hXfZYXJKpcOEzg6LFaKFnNsODtEWJOZnEyifw7xJ1KEVcgQ== X-Gm-Gg: ASbGncsrAcDXtca4MBIPyO1cwXxTRRoH32oRFvFQ/nDGxzqdTP2GwH86fs2FCn6/U1Y v3AOpXNP31cd9e3OZwFjgl3v8/RsKLNdtjk0j6FEhhJWz8c+UngBaF2+AMyvugQyjoJCGoCwMhc od2VfQbvCtoP1c8V2beqyRdek3nrlMg+6jcFXi46mBPXj125ibz/+y9tYLuVVcd3Vi2tGOAfwBp 7bL8RTRjIvD2lW4q5CoqNk2TFr1y+MQ51FugvS9cG/EvFNH+KXNE14j6wj5V4LRFD6zwZkNhIU1 bHHgRg== X-Google-Smtp-Source: AGHT+IE6iZvEWDA/HT2qyrilcMXxLJoiDb8jH1GG7JhJUQ3WAKb2bvhLXlE9qSCYw8Xnju6v/Nzx4Q== X-Received: by 2002:a05:6402:370a:b0:5d2:7270:6135 with SMTP id 4fb4d7f45d1cf-5d63c3c6169mr14566067a12.33.1734385665277; Mon, 16 Dec 2024 13:47:45 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5d652ad17fasm3579422a12.22.2024.12.16.13.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Dec 2024 13:47:44 -0800 (PST) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes In-Reply-To: <86seqps9v4.fsf@gnu.org> References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> <86seqps9v4.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== Date: Mon, 16 Dec 2024 22:47:43 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Dec 15 2024, Eli Zaretskii wrote: > Thanks. I don't think what you want can possibly work, unless we > completely redesign how the fringes are updated. Well=E2=80=A6 there=E2=80=99s always the atomic option of calling redraw-fr= ame. Though I=E2=80=99ve found that changing an attribute of a font is sufficient. I believe what makes things work is setting f->face_change and calling fset_redisplay. ---- >8 ---------------------------------------------------------------- (defvar-local adob-remapping nil) (put 'adob-remapping 'permanent-local nil) (defface adob-test '((t :background "red")) "Test") (defface adob-hack '() "Test") (defun adob-force-window-update (wnd) (force-window-update wnd) (let ((frame (window-frame wnd)) (value (face-attribute 'adob-hack :inverse-video frame nil))) (internal-set-lisp-face-attribute 'adob-hack :inverse-video (not value) frame))) (defun adob-force-window-update (wnd) (force-window-update wnd) ; (redraw-frame (window-frame wnd)) (let ((frame (window-frame wnd)) (value (face-attribute 'adob-hack :inverse-video frame nil))) (internal-set-lisp-face-attribute 'adob-hack :inverse-video (not value) frame))) (defun adob-test-for-each-window (func) (save-current-buffer (dolist (frame (frame-list)) (dolist (wnd (window-list frame)) (set-buffer (window-buffer wnd)) (when (funcall func wnd) (adob-force-window-update wnd)))))) (defun adob-test-update () (let ((face '(:filtered (:window adob-test t) adob-test)) (selected-window (selected-window))) (adob-test-for-each-window (lambda (wnd) (let ((val (eq wnd selected-window)) update) (unless adob-remapping (setq adob-remapping (face-remap-add-relative 'fringe face) update t)) (unless (eq val (window-parameter wnd 'adob-test)) (set-window-parameter wnd 'adob-test val) (setq update t)) update))))) (defun adob-test-on () (interactive) (adob-test-update) (add-hook 'post-command-hook #'adob-test-update)) (defun adob-test-off () (interactive) (remove-hook 'post-command-hook #'adob-test-update) (adob-test-for-each-window (lambda (wnd) (when adob-remapping (face-remap-remove-relative adob-remapping) (setq adob-remapping nil) t)))) ---- 8< ---------------------------------------------------------------- --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 17 07:17:00 2024 Received: (at 74876) by debbugs.gnu.org; 17 Dec 2024 12:17:00 +0000 Received: from localhost ([127.0.0.1]:57859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNWVX-0004Ry-R6 for submit@debbugs.gnu.org; Tue, 17 Dec 2024 07:17:00 -0500 Received: from [209.51.188.92] (port=58064 helo=eggs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNWVW-0004Rc-EL for 74876@debbugs.gnu.org; Tue, 17 Dec 2024 07:16:58 -0500 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 1tNWVG-0007zU-NG; Tue, 17 Dec 2024 07:16:44 -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=iyhE4khlyNPFoccZyHiRfPrei/UCxeN2cBQ1Arnmp9M=; b=dEIXeJQbZ3aa3l3HYyP3 pmLQo/+MSyo8BeR00+fNxFXI+PvBllhTmHHND9CkZSKQdMt39vc2BssBOTYL7jWKyohIiBM6PhnQR H8ry5Dva5h8wLYXszlYTTgO8ev9GGG5vfMtcayfpvHy4UyDUK4d6S8IYYMT52uRxob/GQRKklerxi Tz0G3GJbMNQ39Rx7dCS0GH6kCXgUishHRDqY8xY/ZcK401WKO/zZtxPd/jrHt7JU2LW1sXV4XT3Lc mJL45xBqDt8RsWCfSpe00EZ36fbc1oSM0Gu6w4U7KdcVgVXAfnpbgYyfpsUJOrd8LpZiTzi6xmD4U zr9UfI5/g0NqaA==; Date: Tue, 17 Dec 2024 14:16:40 +0200 Message-Id: <8634impkrb.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: (message from Michal Nazarewicz on Mon, 16 Dec 2024 22:47:43 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> <86seqps9v4.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -1.0 (-) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) > From: Michal Nazarewicz > Cc: 74876@debbugs.gnu.org > Date: Mon, 16 Dec 2024 22:47:43 +0100 > > On Sun, Dec 15 2024, Eli Zaretskii wrote: > > Thanks. I don't think what you want can possibly work, unless we > > completely redesign how the fringes are updated. > > Well… there’s always the atomic option of calling redraw-frame. Though > I’ve found that changing an attribute of a font is sufficient. > I believe what makes things work is setting f->face_change and calling > fset_redisplay. Both methods are quite expensive, and will cause flickering in some configurations, so I recommend against that. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 17 08:22:03 2024 Received: (at 74876) by debbugs.gnu.org; 17 Dec 2024 13:22:03 +0000 Received: from localhost ([127.0.0.1]:58033 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNXWV-0007ca-0s for submit@debbugs.gnu.org; Tue, 17 Dec 2024 08:22:03 -0500 Received: from mail-ej1-f44.google.com ([209.85.218.44]:45441) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNXWS-0007c2-AN for 74876@debbugs.gnu.org; Tue, 17 Dec 2024 08:22:01 -0500 Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-aa6997f33e4so818366166b.3 for <74876@debbugs.gnu.org>; Tue, 17 Dec 2024 05:22:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734441654; x=1735046454; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:from:to:cc:subject :date:message-id:reply-to; bh=+skhCvgW1fCnBqjSwyQOPQhFaXWYOjJbSFvwamqZtnY=; b=Z8L89EHf9nvEli2oD3JNHrh40cJuxImydVAO5uInktVBWSL3U86d3XpdB2LiT0l6J+ 97h8A3RJU0QgU/UU7CAz7UPA1Dr4KCb/kDA4r/y1D7MZbgwoFnlRGYgSD3sNz81fzCle HNtuB62F8Vbw3MGiPfkf3CZb/h7liXw82NMC2Bx4WXlqJH+GmvgV/APW05QwgGx0POn1 YbDXTYx/sJq2RGSagrZbP5PmT2OBP/dover3gcp7vD7qTUoQKTcUcvAvGWT2/ysiKPf/ UYXRU6mExgzooCe5+iB/POss2mmZjAzX4yEu3ZYzJEYshXP5ayuEzbWG6e65YOcw4Lnx x/gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734441654; x=1735046454; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+skhCvgW1fCnBqjSwyQOPQhFaXWYOjJbSFvwamqZtnY=; b=o+6EBHvUCiMRO7L98Fj129WeVHUL70Cvvd58LBhMWGuZjh4XB7vsaLk9e5dvu3tFgb 4sEXmwhuTJgUDDI2wlmAPgSCS668uHrGhQ+OfqKcYeKiIRCTkyfAsQCmMwxz5BEthJwk qAUWLn1K/tbKGHor6niRazEC6oI6ai8adtZKKMdVuj7DABeFw6PLb1PmhviHHw93Ub/q 4Ax5tFGkCvjFhX62LSRvElm1MjzeDI9U/24awq6ErHzMlqRGrNTG9tYkrBOrhquyfOce lTn2aLzSKOUEuVoNXAC+AKj1UIck0UKk26SOrFyp32rwrR7K8pYx2f1Q6mse6Y0Pa4hX /JGQ== X-Gm-Message-State: AOJu0YwoR4kOAMFnQIhlHR/J7MEKAyNFl9ASnDKofFG299RFaf2LPZR9 /9hxtAf1ZQdO/9+JtfkqKJ9ObaJuKCIp+5o51tGiheMseke/dt6Wv0Q0BA== X-Gm-Gg: ASbGncu1I90Giz5nolO3zNfw8PnKw7e+sw3DG1Qy1ZuQX1b5Ay6Ov5U4wJ5IT3M3Wua S4o7wIkOUVge4pnjuOiymrKQ6mf/0Ohs1ew4/x02K61aZXOmq7x51h6euky2t7UUMsVe2XZEILW wZaHp+CirsQxEcv2kTfYSoyK39S6Po8bSxDgTwmB351RYHKJf8+miJmiwMduvU/14jjt+Rv279I LvijhMGHQlBZMt8QnZ4vIoGZ2if6AgvieT5ASbwFV66a3U5EPKUyL68oCIYTMy+RIxn12zDNBrv GFSUmQ== X-Google-Smtp-Source: AGHT+IFdP/zjYFXYb+GnNYM1Q+XHQ7Q0uNR0RyGXYISK+oG6HA8uaND5cJxeQsTKXr2im8K5Vl0BHA== X-Received: by 2002:a17:907:7717:b0:aa6:715a:75b5 with SMTP id a640c23a62f3a-aabdb88743fmr329306566b.46.1734441654042; Tue, 17 Dec 2024 05:20:54 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aab960681dbsm442392166b.52.2024.12.17.05.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Dec 2024 05:20:53 -0800 (PST) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes In-Reply-To: <8634impkrb.fsf@gnu.org> References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> <86seqps9v4.fsf@gnu.org> <8634impkrb.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== Date: Tue, 17 Dec 2024 14:20:52 +0100 Message-ID: <71m50+9qm4uxqup7x3scw9xa@mina86.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Tue, Dec 17 2024, Eli Zaretskii wrote: >> From: Michal Nazarewicz >> Cc: 74876@debbugs.gnu.org >> Date: Mon, 16 Dec 2024 22:47:43 +0100 >>=20 >> On Sun, Dec 15 2024, Eli Zaretskii wrote: >> > Thanks. I don't think what you want can possibly work, unless we >> > completely redesign how the fringes are updated. >>=20 >> Well=E2=80=A6 there=E2=80=99s always the atomic option of calling redraw= -frame. Though >> I=E2=80=99ve found that changing an attribute of a font is sufficient. >> I believe what makes things work is setting f->face_change and calling >> fset_redisplay. > > Both methods are quite expensive, and will cause flickering in some > configurations, Yes, I=E2=80=99ve figured as much, but it=E2=80=99s not like I have another= choice. auto-dim-other-buffers redraws entire windows already; someone using likely has setup that can handle full frame redraws as well. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 17 09:20:25 2024 Received: (at 74876) by debbugs.gnu.org; 17 Dec 2024 14:20:25 +0000 Received: from localhost ([127.0.0.1]:58216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNYQz-000270-AH for submit@debbugs.gnu.org; Tue, 17 Dec 2024 09:20:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNYQw-00025D-Dr for 74876@debbugs.gnu.org; Tue, 17 Dec 2024 09:20:23 -0500 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 1tNYQp-0003ca-VV; Tue, 17 Dec 2024 09:20:15 -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=iW/I6knD9Noh7/dnwnGFr3S2N5ibPXVUJKrvqhvSLec=; b=kIV/iC7coNT7o96LTXIT lBUg6g2Yok4O9eEslGP8XwXM8HIvCx84gkqBypYUqoGFx5QWkkVknt1yNP/GOfTUBW61iQckTV0Mu F8wVs4bFiYpqgUcqFTV2I5QuPf0BwSFw62+sy5FyqJYNNLSBIVIkh7M/9YccJlIEVhRAFnqZFEgnN gHL+0jcUv+p6poRDD0fQGUJavr8DwiHr/Vnt7Udl4fAnsyAAS2btAnBToJ/U4EQn4Dnc01YIZ+J4S 39hsEJhpyi0mdUzf/kmcJ8/s5x6auoyZCYbLIJ8q0ps9WfTb/1fX6fsU/Tkz5WmrpVWImWjvdiJ1B Ly1eZNODbkD9qg==; Date: Tue, 17 Dec 2024 16:19:49 +0200 Message-Id: <864j32o0hm.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: <71m50+9qm4uxqup7x3scw9xa@mina86.com> (message from Michal Nazarewicz on Tue, 17 Dec 2024 14:20:52 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes References: <7yl87cc0algqh3xvlrywg2z8@mina86.com> <86zfkyrovc.fsf@gnu.org> <40wpfj26bxd5k4i38c92e0sr@mina86.com> <86seqps9v4.fsf@gnu.org> <8634impkrb.fsf@gnu.org> <71m50+9qm4uxqup7x3scw9xa@mina86.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michal Nazarewicz > Cc: 74876@debbugs.gnu.org > Date: Tue, 17 Dec 2024 14:20:52 +0100 > > On Tue, Dec 17 2024, Eli Zaretskii wrote: > >> From: Michal Nazarewicz > >> Cc: 74876@debbugs.gnu.org > >> Date: Mon, 16 Dec 2024 22:47:43 +0100 > >> > >> On Sun, Dec 15 2024, Eli Zaretskii wrote: > >> > Thanks. I don't think what you want can possibly work, unless we > >> > completely redesign how the fringes are updated. > >> > >> Well… there’s always the atomic option of calling redraw-frame. Though > >> I’ve found that changing an attribute of a font is sufficient. > >> I believe what makes things work is setting f->face_change and calling > >> fset_redisplay. > > > > Both methods are quite expensive, and will cause flickering in some > > configurations, > > Yes, I’ve figured as much, but it’s not like I have another choice. 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. From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 01 13:14:53 2025 Received: (at 74876) by debbugs.gnu.org; 1 Jan 2025 18:14:53 +0000 Received: from localhost ([127.0.0.1]:39744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tT3F6-0004Vf-T8 for submit@debbugs.gnu.org; Wed, 01 Jan 2025 13:14:53 -0500 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]:51476) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tT3F4-0004VD-2E for 74876@debbugs.gnu.org; Wed, 01 Jan 2025 13:14:51 -0500 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-aaf8f0ea963so66873466b.3 for <74876@debbugs.gnu.org>; Wed, 01 Jan 2025 10:14:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735755283; x=1736360083; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:from:to:cc:subject :date:message-id:reply-to; bh=AMWZ2Ya+ga7sjf+sMKqnU4rvSEbP6Trhf2cxCN+cluM=; b=YKKZwBWIQAmVPBMTLMiVjMkKjfSpMm7JAWyXjV4TrA2ABoDjI7q7TwgqTNdgq/8dY1 CfUD1y7HsJcmXypv6RThrW+CNPV/T1tWeW3Cjne9iEfOzhgEZKB91GXmP58UHvn5gTAu tL0IMwQbLMfzBWecSL1pcnNvSQDFsQG0D2/rZvvNXwGCgptDvo64Ipxc6qdV4FE3KHwN 3bCt6WSxQr7QOxkp5kdw7YABae8nUuuA2iMylRHmtr7rQKp5E9Gk96RsJSl6o4JcyFAz cQ32xzK8+91LaIwKo9NH4EbPe8NA8ulGaorgw0DAWvyAneo3+/RkoVx/1l1auGWaE2Ex FuOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735755283; x=1736360083; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=AMWZ2Ya+ga7sjf+sMKqnU4rvSEbP6Trhf2cxCN+cluM=; b=lx4WmN08xMIU43ivK5knl29CpJTJ0BEQnyOsJR1GAg3KgjC0wvy2Im5x7RIPR6BAhx px/Tco0SglcEO5/7z/qLFO3KNngk1mUTJrTm+8hgzdpgBC73No46d+qNkdsnNaOYloA+ 4o6lewWZu3XUFmLEE4EMyxDRO1BGjAoTsol9vwEkQYZDgQPWsbq6TlftDIJ9WZ0Jz5VG Gdtm5L060yLY2MPH53kJZK3EwORvDqEs7wd3qXOfk13lsGMuXyBGVHiyJSsA6MT34TTC zQJtsgUxJBCbh+w2hDpMAYQ9TqimRUOkpZV3U4yNEp92kw5wxa+XfAsV8A6h7Q3j3zps ai5Q== X-Gm-Message-State: AOJu0YyKgjR6HAO2q8sWBdWoj1Zyp9TOO1asZDnMs9C+T5EUCPvP37AU meWlr7qCWpYdFmHRB07nT7pMdCX15paWxZ1P83o3sVkGb1BQnssG+vYfeQ== X-Gm-Gg: ASbGncs5J6bPEAaD2RsKjO+UxZHfRi3V7yr3ZDQUR2jwIPPlLbFb1P4AfZvpwVS/XW4 lgL4qzBE6B2TEURnciLjGYQ8p2/WojQK1vMtKqCnEeRpZu5TwPC1Q46fX1IvW6gpVFMWTSXTh77 vfcJSgABywL8o6Dak88inD1ykV8C54kqLSnfemMDR3d0Qz+lIZ1i+VF0H8fo2+fdUCqxZ8Dx+7F TOtls6dEXT+fy4GO1QVbDv/JCq26kXh4XAJ8tyUcLvqzdw3/ufUT2nPhYKH7DSXzwC8jiHfMPvs LAZR2w== X-Google-Smtp-Source: AGHT+IHxjrJ+1a6qbTkGfZRwdfmyb+Onrv+8pwJm0YKljzrCbMushldVTxzfB2yy5iEaa0sy9sEiGw== X-Received: by 2002:a17:907:7d9e:b0:aab:7588:f411 with SMTP id a640c23a62f3a-aac2b94645amr3975119866b.25.1735755283224; Wed, 01 Jan 2025 10:14:43 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aaf5d43429bsm369839166b.154.2025.01.01.10.14.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jan 2025 10:14:42 -0800 (PST) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes In-Reply-To: <864j32o0hm.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> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== Date: Wed, 01 Jan 2025 19:14:40 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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 > implementati [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:635 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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 > implementati [...] Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:635 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 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=E2=80=99s acceptable for package which is part of Emacs, a single refresh when people switch windows is good enough for a third-party package. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 01 13:54:47 2025 Received: (at 74876) by debbugs.gnu.org; 1 Jan 2025 18:54:47 +0000 Received: from localhost ([127.0.0.1]:39797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tT3rj-0006Sl-0z for submit@debbugs.gnu.org; Wed, 01 Jan 2025 13:54:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54710) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tT3rh-0006SV-9l for 74876@debbugs.gnu.org; Wed, 01 Jan 2025 13:54:45 -0500 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 1tT3rb-0005zX-Ga; Wed, 01 Jan 2025 13:54:39 -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=uruqh3xbP5RNImUY8d7hS2Tcb9uWeBLAuT28zJAFhwg=; b=PZw9SNmkRxYS7jzUBVP1 1pY6+S7/JDv6lnwOGO6Bqmh8ACv1VFkpASCtsafwWDUoAw9J0pz0gHh2WdW+k+/lZ2km8vF7f23nC P5VL3Nw9WFcjBm0bk1xXtT4schAtr9hui4/U7iPEG/lbDriX8Lt9IVLFcOEYKrOQlywqU7dI3Nw2T pu2uaRxTXogn4qXRJQGbSU4rgR5Evhsa5Ft1m0UUsqEJNpecL1DSnhQRFqTLH94K0A2hAYWeVF9MF VqUDft7yoTTwZV7BW2uDt8zRFEh6VFSzYnw+udTbTIGnw9F7HSHU9Vu9LWz3N2Rh9H9lKKJIUWyIZ UQiN5g8K3Wfa4g==; Date: Wed, 01 Jan 2025 20:54:37 +0200 Message-Id: <86pll6l5zm.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: (message from Michal Nazarewicz on Wed, 01 Jan 2025 19:14:40 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes 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> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > 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). From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 01 14:02:55 2025 Received: (at 74876) by debbugs.gnu.org; 1 Jan 2025 19:02:55 +0000 Received: from localhost ([127.0.0.1]:39810 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tT3zb-0006wv-0s for submit@debbugs.gnu.org; Wed, 01 Jan 2025 14:02:55 -0500 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]:55649) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tT3zZ-0006wi-6c for 74876@debbugs.gnu.org; Wed, 01 Jan 2025 14:02:54 -0500 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-5d3d14336f0so2609101a12.3 for <74876@debbugs.gnu.org>; Wed, 01 Jan 2025 11:02:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735758167; x=1736362967; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:from:to:cc:subject :date:message-id:reply-to; bh=+fzuCejdlsYHSu9YnLPjwm/NOdOXuri20T+oVsWzQKA=; b=EqVjD+PO9Ej6IKdAREW1l6/n1oXBCCqhqfVVOkK2n7+ckm03IibqvLBsZlqK58XQs2 z2XrlT1jSnNULKtpxZIQu/TNY+7+kxydwgYz3i3w1LpoqxbyrFr1qfIco5rQi9vFrzwM QYcaNcD8iy7hWJTieubkIwkA+e+NPUG5eMGFsMuVPwaz3ekggO2ZuSkLU6hlMcmnWSbG JRRllMbCXq/B4a2tqnECmXnriRZH4dHqiCQ/I1mNq+Riv22vxuj/tTeV1e5T9h8MRKlD o8LAnyPqB9QzN/QoZVpajI+99aZfvUnhMKKOXOTeLRHPOkZAMsg+f1cOMFVkspcfVHIY Cnyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735758167; x=1736362967; h=content-transfer-encoding:mime-version:message-id:date:face :references:in-reply-to:subject:cc:to:from:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+fzuCejdlsYHSu9YnLPjwm/NOdOXuri20T+oVsWzQKA=; b=uiQ31L871aoaTEr+7n91pmZNBJHpR5F+Ns1BhdbH7YIMsmE8AmQeY2RTlY8AzYZsOu iigz+Ar+uCoR5hLxSOD3eRPCYjkYeCdiud1xie6FL7zI/enypmcds6guF8V6mLmnor1C y3VcLj5vtob2cKdU4Fau3PZLdlGh5nTNJ4oXd88dbV7vLUBmj8JqvuW5u5/kw3UCmZM3 2CYTxa8XN66ZzUhsHx9fqWmXHOmipLIPL1lM6y7KwED7L5YQaID/kp1Gb5jl5Xr8eNsQ 67LUQjty7S03mJIZAvZN44ACxS2+xn+trB5zaNKwW4WX2pEzNtCDK/o4g5IpvDyv5QSs TjCw== X-Gm-Message-State: AOJu0YxYWqC4H2vMm0V25qb+KN18nAMsPdU/dE2xrlo2eljFqCoJ21U1 k8JIURd7XSeQUBTX5iISnUpo5CpyCJ2um15k9gzQtitUgVIxEUfvZG1f1g== X-Gm-Gg: ASbGncvX9NkGTbaKpOIQZ6c5CcnrMvdX8J3Yas0ek/Dszv3c/31UZ3KP1wsoCmyeocR Xt7S6j63N2Pd5oBgdQhBvQUol6972qAM+U2+1RlTSvkbunGkmzNdJDbZ2cGXql4lumvYVbOz8AN ffKhwZ1xYz7m+v36m+QbHfbpdZUrCp7+vr7kvbjmqI0Ngns80BMmYU6A+OW28nFwMqcdLK6KpZz bRUFTO21sJaKcoyxRnrOoqyfpmULw0/KtNR/n0EyJ3IyxvoGuYheoOXYK6rqVxuR2quK/epQBCa 15uuBQ== X-Google-Smtp-Source: AGHT+IE7aX4McJfaaJBKkbi/amfDvbOLsbrYZWDZeWPu+7VZIl+GGeLOd0kATjvzvJAJhiSzps/YgA== X-Received: by 2002:a05:6402:5253:b0:5d0:aa2d:6eee with SMTP id 4fb4d7f45d1cf-5d81ddf7fb6mr39731843a12.26.1735758166563; Wed, 01 Jan 2025 11:02:46 -0800 (PST) Received: from erwin (87-205-2-211.static.ip.netia.com.pl. [87.205.2.211]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0f0653bbsm1726499266b.184.2025.01.01.11.02.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jan 2025 11:02:46 -0800 (PST) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes In-Reply-To: <86pll6l5zm.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> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWjgIPUupJ7V0jLrom4gmjPs42bY0MdFRLHgE5UPDCbfGm9mH6qmkAJAAACNUlEQVQ4y23SMW/aQBQHcKtb2Zx0abZeIxuTCSELJVmiinboRpGHJktloROQzUQcB2vUXFe35XBYUicRAiYUVSjfru/d+QwlnDz5p/97z+dnVcw5WVQ2zxpcdrQTTiIin3bB6lcaTnaBO5c8eoJG2yBl5El+Ob3fglMW3RUIkQ9xxQ8UBEFQafiVZ/5wZqWExM+LvwEegAY856xZO7MgQkq3jxpO56GXxO5VDQAjpVmWqPLYoSGvIahIuvAVHLeEEDd9DRYAkUcKzscAUgCQ0hwSKBOExuh7kvQQUskY4yjsHqeaCfFjLK6x1AzeeyiRD/C1JW5aGqw5IS5mZre+FVz0RVtoUGPJmBCP/4QPJGKUA1oEMJwAHIv+JljYZYCJi1FRQS2DaUw6sgsQTMfb0Fz9RvjyP3iR01x9RGj0N6HgcefS819CSjidDwIFPSFEDgRg1tUw2oBXAB33T2DV63XbM6AqhZzysm3ZcKZrKBAn5O7Q1rAqGoBKNGRsmUG1n0NKaJtd2RnscTWvnom6fGngDaNrCNl728A+c2gLQP8PFpkEjNWjlGqQfPEhWRqoInSyi2p+drsGDjhAeAeSQI8kfjSwbwCn8gblvIftInzT30HdQT2HlU4gwCbLSQ7VFqVEA0RCtjTwtnjdLlkasNjQwF7x02F2iQSL8XIGB8VQ71WBKHHf5XCIgLUUtIcGSBPhdZIQorpEBrxsqT3GYgRpmicIqrsEgSZm3FG+iJbHYid0/wGj+iTGCXRsqQAAAABJRU5ErkJggg== Date: Wed, 01 Jan 2025 20:02:45 +0100 Message-ID: <7okn4mf143680yga1fqtbdbf@mina86.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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 [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:531 listed in] [list.dnswl.org] 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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 [...] Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:531 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mnazarewicz[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 2.6 MSGID_RANDY Message-Id has pattern used in spam -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 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 >>=20 >> 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. >>=20 >> pulse.el forces 10 refreshes every 30 ms. If that=E2=80=99s 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=E2=80=99re saying Emacs is smart enough to notice that only small portion of the window needs refreshing, this should also be true in my case where only fringes need refreshing. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 01 14:40:32 2025 Received: (at 74876) by debbugs.gnu.org; 1 Jan 2025 19:40:32 +0000 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 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 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==; Date: Wed, 01 Jan 2025 21:39:50 +0200 Message-Id: <86ldvul3w9.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-Reply-To: <7okn4mf143680yga1fqtbdbf@mina86.com> (message from Michal Nazarewicz on Wed, 01 Jan 2025 20:02:45 +0100) Subject: Re: bug#74876: 31.0.50; Force fringe refresh / force-window-update not affecting fringes 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 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74876 Cc: 74876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > 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. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 02 14:27:15 2025 Received: (at control) by debbugs.gnu.org; 2 Jan 2025 19:27:15 +0000 Received: from localhost ([127.0.0.1]:46730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tTQqg-00031F-HZ for submit@debbugs.gnu.org; Thu, 02 Jan 2025 14:27:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45846) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tTQqe-00030t-2M; Thu, 02 Jan 2025 14:27:13 -0500 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 1tTQqV-0008RA-Hx; Thu, 02 Jan 2025 14:27:05 -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=mg03liASSVXXZSBV0CrBHa3bHwRNNGLozBpLD8e24gI=; b=ntDjFcbGhHI/ SGNuTftexudzPIm7acbzZzvl5pqxyBeKUSgGrAHEEHKv19EAdO/tvsoLwQZi+H8czkvDXgiQcuUc9 YGEzZ19Hft12tBSOjZV1n3zCe90lXy5NC46CWoNodnEOBQErQQ4YTCW7HomNu4EmRXK2vClLZsbpu bIaYVIrdPlOlDXZBichuJf9udO7Bt8em7zPlrB9cKWjT2ctR8O4Xck44L60A7f1WIQHgYhQwJt2dL onNVxN3AowP3kM7EEaNR0uLVPWYdGeYM9lq2qZGbpfKnzzp5TCbA8FoNgXPzsAvsvKI6hpEyBllkl K/Jk0AzoAu/1F3I74Omo3Q==; Date: Thu, 02 Jan 2025 21:26:55 +0200 Message-Id: <86v7uxhv9c.fsf@gnu.org> From: Eli Zaretskii To: Daniel Colascione In-Reply-To: <87ttah2hcd.fsf@dancol.org> (message from Daniel Colascione on Thu, 02 Jan 2025 13:36:34 -0500) Subject: Re: bug#75291: Redisplay not updating fringe when face filter changes References: <874j2h3yzb.fsf@dancol.org> <8634i1jeai.fsf@gnu.org> <87ttah2hcd.fsf@dancol.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control Cc: 75291@debbugs.gnu.org, mina86@mina86.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) merge 75291 74876 thanks > From: Daniel Colascione > Cc: 75291@debbugs.gnu.org, Michal Nazarewicz > Date: Thu, 02 Jan 2025 13:36:34 -0500 > > Eli Zaretskii writes: > > > I think this is bug#74876 again. I tried to explain there why the way > > the fringe drawing is implemented doesn't work well with > > face-remapping (or with changes in the fringe face in general). > > > > Maybe I'm missing something, but supporting what this and that bug > > want would need a rewrite of update_window_fringes (and possibly also > > the way we record fringes' attributes in the glyph row). > > That's amazing. Seven years ago, I implemented > https://github.com/dcolascione/emacs-window-highlight/blob/master/window-highlight.el. > I worked around the bug we're discussing using redraw-display. I see > that Michal (++) implemented the same feature independently and reported > the same bug just a few weeks before I got around to reporting the same > bug from seven years ago! Pure serendipity. Yes, redrawing everything will work, but will also cause flicker, and is generally expensive, thus undesirable. > Anyway, given that the feature has been implemented twice now, maybe we > can find some way to make it work efficiently? I haven't looked into > how exactly we do fringe invalidation, but isn't there a way we can > limit the blast radius of the redraw by providing a lisp-level function > to invalidate extra GUI parts of specific windows rather than forcing a > redraw-frame? It's not clear to me why we couldn't skip redrawing every > row's content but redraw every row's fringe anyway. > > Ideally, a change to a face in which the change couldn't possibly affect > layout (e.g. changing a background color) would be pretty efficient from > a redisplay POV, since we wouldn't have to even try to reflow any text. AFAIR, the current implementation is the other way around: when some glyph row changes, we consider redrawing its fringes. E.g., draw_window_fringes only considers glyph rows that are enabled in the glyph matrix, which means redisplay found that glyph row has changed. Clearly, someone didn't think the fringe face will change during a session! Regarding your idea about Lisp function that would invalidate GUI parts: it is not very easy, since a Lisp program cannot easily know where on the screen a given region of buffer positions will be. There is posn-at-point, of course, but (a) it is quite expensive, and (b) when Lisp runs, display could be outdated, so what posn-at-point returns could be inaccurate. In any case, I don't think this will be needed in the case in point, because when the fringe face changes, we'd want to redraw the fringes of the entire window, right? So redisplay_window would need to notice the change in the face, and invoke update_window_fringes in a special way, such that update_window_fringes marks fringes to be redrawn not only when the glyph row is enabled. Maybe that would work. The way to "notice the change in the face" is not a simple problem to solve, btw. We currently don't know which faces change when some face is modified. So we have a frame-global flag that is set when any face changes its attributes. If we use that flag for detecting potential changes in the fringe face, we'd start redrawing fringes unnecessarily. We could add a special flag for the fringe face, but then we'd need to add a special mechanism in xfaces.c which would analyze each change in some face's attribute and determine whether it could possibly affect the fringe face. Or maybe I'm missing some more elegant/easier solution. From unknown Sat Jun 21 10:15:03 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 15 Feb 2025 12:24:10 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator