GNU bug report logs -
#51550
29.0.50; Customize Group INS buttons sometimes don't have a left box line
Previous Next
Reported by: Po Lu <luangruo <at> yahoo.com>
Date: Mon, 1 Nov 2021 13:53:02 UTC
Severity: minor
Found in version 29.0.50
Fixed in version 31.1
Done: Mauro Aranda <maurooaranda <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #91 received at 51550 <at> debbugs.gnu.org (full text, mbox):
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: stefan <at> marxist.se, stephen.berman <at> gmx.net, 51550 <at> debbugs.gnu.org
> Date: Wed, 29 Dec 2021 21:54:38 +0800
>
> (with-current-buffer (get-buffer-create "*test*")
> (insert #("foo\nfoo" 0 4 (face widget-field)))
> (let ((overlay (make-overlay 5 8 nil t nil)))
> (overlay-put overlay 'before-string (propertize " " 'invisible t))
> (overlay-put overlay 'face custom-button)))
>
> After this, I would have expected the second "foo" in *test* to begin
> with a box line, but it doesn't.
It was a subtle bug in how we handle face's box attribute when the
display engine changes the object on which it iterates. Compare the
effect of this:
(with-current-buffer (get-buffer-create "*test*")
(load "wid-edit")
(load "cus-edit")
(insert #("foo\nfoo" 0 4 (face widget-field)))
(let ((overlay (make-overlay 5 8 nil t nil)))
(overlay-put overlay 'before-string "X")
(overlay-put overlay 'face custom-button)))
with this:
(with-current-buffer (get-buffer-create "*test*")
(load "wid-edit")
(load "cus-edit")
(insert #("foo\nXfoo" 0 4 (face widget-field)))
(let ((overlay (make-overlay 6 9 nil t nil)))
(overlay-put overlay 'face custom-button)))
The change of face between the "X" and the following button should be
displayed the same, but wasn't.
I installed a fix on master. Please see if it solves the real-life
use case, and close the bug if it does.
Thanks.
This bug report was last modified 81 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.