1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Add unbuttonize-region

* doc/lispref/display.texi (Making Buttons): Document it.
* lisp/button.el (unbuttonize-region): New function, removes all
buttons in the specified region.
This commit is contained in:
Robert Pluim 2024-09-25 15:49:53 +02:00
parent e44f98b71b
commit 08ee074a6f
3 changed files with 24 additions and 1 deletions

View File

@ -7968,6 +7968,11 @@ between @var{start} and @var{end} into a button. Arguments
@code{help-echo} property of the button.
@end defun
@defun unbuttonize-region start end
This function removes all buttons between @var{start} and @var{end} in
the current buffer (both overlay and text-property based ones).
@end defun
@node Manipulating Buttons
@subsection Manipulating Buttons
@cindex manipulating buttons

View File

@ -222,6 +222,12 @@ When called with a prefix argument, accepting, declining, or tentatively
accepting an icalendar event will prompt for a comment to add to the
response.
** Button
+++
*** New function 'unbuttonize-region'.
It removes all the buttons in the specified region.
** Eshell
---

View File

@ -663,10 +663,22 @@ itself will be used instead as the function argument.
If HELP-ECHO, use that as the `help-echo' property.
Also see `buttonize'."
Also see `buttonize' and `unbuttonize-region'."
(add-text-properties start end (button--properties callback data help-echo))
(add-face-text-property start end 'button t))
(defun unbuttonize-region (start end)
"Remove all the buttons between START and END.
This removes both text-property and overlay based buttons."
(dolist (o (overlays-in start end))
(when (overlay-get o 'button)
(delete-overlay o)))
(with-silent-modifications
(remove-text-properties start end
(button--properties nil nil nil))
(add-face-text-property start end
'button nil)))
(provide 'button)
;;; button.el ends here