Function: org-appear--post-cmd
org-appear--post-cmd is a natively compiled function defined in
org-appear.el.
Signature
(org-appear--post-cmd)
Documentation
This function is executed by post-command-hook in org-appear-mode(var)/org-appear-mode(fun).
It handles toggling elements depending on whether the cursor entered or exited them.
Source Code
;; Defined in /nix/store/ysqmilmh80y85ik1crg29w7g7i73wjk9-emacs-packages-deps/share/emacs/site-lisp/elpa/org-appear-20260716.2120/org-appear.el
(defun org-appear--post-cmd ()
"This function is executed by `post-command-hook' in `org-appear-mode'.
It handles toggling elements depending on whether the cursor entered or exited
them."
(let* ((prev-elem org-appear--prev-elem)
(prev-elem-start (org-element-property :begin prev-elem))
(current-elem (org-appear--current-elem))
(current-elem-start (org-element-property :begin current-elem)))
;; After leaving an element
(when (and prev-elem
org-appear--elem-toggled
(not (equal prev-elem-start current-elem-start)))
;; Forget element
(setq org-appear--elem-toggled nil)
;; If timer for prev-elem fired and was expired
(if (not org-appear--timer)
(save-excursion
(goto-char prev-elem-start)
;; Reevaluate `org-element-context' in case the bounds
;; of the previous element changed
(org-appear--hide-invisible (org-element-context)))
(cancel-timer org-appear--timer)
(setq org-appear--timer nil)))
;; Inside an element
(when (and current-elem (or (eq org-appear-trigger 'always)
org-appear--do-buffer
org-appear--elem-toggled))
;; Mark element as toggled to continue toggling and ignore buffer state
(setq org-appear--elem-toggled t)
;; New element, delay first unhiding
(when (and (eq org-appear-trigger 'always)
(> org-appear-delay 0)
(not (eq prev-elem-start current-elem-start)))
(setq org-appear--timer (run-with-idle-timer org-appear-delay
nil
#'org-appear--show-with-lock
current-elem
t)))
;; Not a new element
(when (not org-appear--timer)
(org-appear--show-with-lock current-elem)))
(setq org-appear--prev-elem current-elem)
(when (not (eq org-appear-trigger 'manual))
(setq org-appear--do-buffer nil))))