bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#51550: 29.0.50; Customize Group INS buttons sometimes don't have a l


From: Eli Zaretskii
Subject: bug#51550: 29.0.50; Customize Group INS buttons sometimes don't have a left box line
Date: Wed, 29 Dec 2021 16:56:52 +0200

> From: Po Lu <luangruo@yahoo.com>
> Cc: stefan@marxist.se,  stephen.berman@gmx.net,  51550@debbugs.gnu.org
> Date: Wed, 29 Dec 2021 21:54:38 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Why did you want to use a before-string? why not simply a single
> > invisible character before the button?
> 
> It has to be an overlay, because wid-insert might not be able to insert
> such a character before the button.  (In general, the display of
> everything in a button except for text seems to be done entirely with
> overlays -- I don't think the buffer is supposed to contain anything
> other than the text of the button itself.)

So make an overlay whose property is 'invisible' -- doesn't that work?

What do you mean by "wid-insert might not be able to insert" -- isn't
the text of the button inserted as well? then why not make the
invisible character part of the inserted button text?

>   (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.

Will look into this soon.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]