[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 bc10e46 5/5: Backport: Rectify allout-widgets region undecorati
From: |
ken manheimer |
Subject: |
emacs-27 bc10e46 5/5: Backport: Rectify allout-widgets region undecoration so item at start is not missed. |
Date: |
Mon, 20 Jul 2020 14:33:43 -0400 (EDT) |
branch: emacs-27
commit bc10e467f1c2b885637ef734afc331e6b2127373
Author: Ken Manheimer <ken.manheimer@gmail.com>
Commit: Ken Manheimer <ken.manheimer@gmail.com>
Backport: Rectify allout-widgets region undecoration so item at start is
not missed.
* lisp/allout-widgets.el (allout-widgets-undecorate-region):
Reorganize the loop so an item at the start is not skipped.
(cherry picked from commit 33d85cb768b40794bffcd9ab22fbdec1211a74e5)
---
lisp/allout-widgets.el | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
index 5460551..2a8dced 100644
--- a/lisp/allout-widgets.el
+++ b/lisp/allout-widgets.el
@@ -2060,19 +2060,22 @@ Optional FORCE means force reassignment of the region
property."
;;;_ > allout-widgets-undecorate-region (start end)
(defun allout-widgets-undecorate-region (start end)
"Eliminate widgets and decorations for all items in region from START to
END."
- (let ((next start)
- widget)
+ (let (done next widget
+ (end (or end (point-max))))
(save-excursion
(goto-char start)
- (while (< (setq next (next-single-char-property-change next
- 'display
- (current-buffer)
- end))
- end)
- (goto-char next)
- (when (setq widget (allout-get-item-widget))
- ;; if the next-property/overly progression got us to a widget:
- (allout-widgets-undecorate-item widget t))))))
+ (while (not done)
+ (when (and (allout-on-current-heading-p)
+ (setq widget (allout-get-item-widget)))
+ (if widget
+ (allout-widgets-undecorate-item widget t)))
+ (goto-char (setq next
+ (next-single-char-property-change (point)
+ 'display
+ (current-buffer)
+ end)))
+ (if (>= next end)
+ (setq done t))))))
;;;_ > allout-widgets-undecorate-text (text)
(defun allout-widgets-undecorate-text (text)
"Eliminate widgets and decorations for all items in TEXT."
- emacs-27 updated (cd93deb -> bc10e46), ken manheimer, 2020/07/20
- emacs-27 3071cec 2/5: Backport: Don't let item decoration be disrupted by too-shallow items., ken manheimer, 2020/07/20
- emacs-27 2035ecc 3/5: Backport: Provide missing let definition to prevent background void-variable error., ken manheimer, 2020/07/20
- emacs-27 044960e 1/5: Backport: Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312), ken manheimer, 2020/07/20
- emacs-27 bc10e46 5/5: Backport: Rectify allout-widgets region undecoration so item at start is not missed.,
ken manheimer <=
- emacs-27 82742e2 4/5: Backport: Resolve missing button-region keymap bindings., ken manheimer, 2020/07/20