diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-01-09 23:25:57 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-01-09 23:25:57 +0100 |
commit | fa71fdbb53c58e72940a9d9fb76e7dab8a3663f2 (patch) | |
tree | 37fbf1755d4232840c63730495634de059aefa50 | |
parent | c006a60fac7eaa9a4c4adebfc865f5e299d57b0b (diff) | |
download | org-mode-fa71fdbb53c58e72940a9d9fb76e7dab8a3663f2.tar.gz |
org-num: Clear numbering overlays upon changing major mode
* lisp/org-num.el (org-num--clear): New function.
(org-num-mode): Use new function.
Reported-by: stardiviner <numbchild@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2019-01/msg00088.html>
-rw-r--r-- | lisp/org-num.el | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/org-num.el b/lisp/org-num.el index bfdf4c0..f062526 100644 --- a/lisp/org-num.el +++ b/lisp/org-num.el @@ -184,6 +184,11 @@ Update `org-num--invalid-flag' accordingly." (overlay-put o 'org-num 'invalid) (setq org-num--invalid-flag t)) +(defun org-num--clear () + "Remove all numbering overlays in current buffer." + (mapc #'delete-overlay org-num--overlays) + (setq org-num--overlays nil)) + (defun org-num--make-overlay (numbering level skip) "Return overlay for numbering headline at point. @@ -444,11 +449,12 @@ NUMBERING is a list of numbers." (user-error "Cannot activate headline numbering outside Org mode")) (setq org-num--numbering nil) (setq org-num--overlays (nreverse (org-num--number-region nil nil))) - (add-hook 'after-change-functions #'org-num--verify nil t)) + (add-hook 'after-change-functions #'org-num--verify nil t) + (add-hook 'change-major-mode-hook #'org-num--clear nil t)) (t - (mapc #'delete-overlay org-num--overlays) - (setq org-num--overlays nil) - (remove-hook 'after-change-functions #'org-num--verify t)))) + (org-num--clear) + (remove-hook 'after-change-functions #'org-num--verify t) + (remove-hook 'change-major-mode-hook #'org-num--clear t)))) (provide 'org-num) |