org-latex-preview: Fix overlay boundary deletion bug

*
lisp/org-latex-preview.el (org-latex-preview-auto--regenerate-overlay):
When `org-latex-preview-auto-mode' is active and a LaTeX fragment
or environment boundary is deleted,
`org-latex-preview-auto--regenerate-overlay' generates a new
preview for the new org-element at point, which is no longer a
LaTeX fragment or environment.  This results in paragraph text or
other syntax being captured into the preview.  Fix by adding a
check to ensure that the element post-change is still a LaTeX
fragment or environment.
This commit is contained in:
Karthik Chikmagalur 2023-04-16 16:32:17 -07:00 committed by TEC
parent e509cf6adc
commit 9914b251af
Signed by: tec
SSH Key Fingerprint: SHA256:eobz41Mnm0/iYWBvWThftS0ElEs1ftBr6jamutnXc/A
1 changed files with 10 additions and 3 deletions

View File

@ -698,9 +698,16 @@ image. The preview image is regenerated if necessary."
(eq (org-element-type fragment) 'latex-environment)
(org-latex-preview--get-numbered-environments
(overlay-end ov) nil))))
(org-latex-preview--place-from-elements
org-latex-preview-default-process
(append (list fragment) others)))))
(if (memq (org-element-type fragment)
'(latex-fragment latex-environment))
(org-latex-preview--place-from-elements
org-latex-preview-default-process
(cons fragment others))
(delete-overlay ov)
(when others
(org-latex-preview--place-from-elements
org-latex-preview-default-process
others))))))
(defun org-latex-preview-auto--insert-front-handler
(ov after-p _beg end &optional _length)