Function: allout-widgets-changes-dispatcher
allout-widgets-changes-dispatcher is a byte-compiled function defined
in allout-widgets.el.gz.
Signature
(allout-widgets-changes-dispatcher)
Documentation
Dispatch CHANGES-RECORD items to respective widgets change processors.
Source Code
;; Defined in /usr/src/emacs/lisp/allout-widgets.el.gz
;;;_ > allout-widgets-changes-dispatcher ()
(defun allout-widgets-changes-dispatcher ()
"Dispatch CHANGES-RECORD items to respective widgets change processors."
(if (not allout-widgets-mode-inhibit)
(let* ((changes-record allout-widgets-changes-record)
(changes-pending (and changes-record t))
entry
exposures
additions
deletions
shifts)
(when changes-pending
(while changes-record
(setq entry (pop changes-record))
(pcase (car entry)
(:exposed (push entry exposures))
(:added (push entry additions))
(:deleted (push entry deletions))
(:shifted (push entry shifts))))
(if exposures
(allout-widgets-exposure-change-processor exposures))
(if additions
(allout-widgets-additions-processor additions))
(if deletions
(allout-widgets-deletions-processor deletions))
(if shifts
(allout-widgets-shifts-processor shifts))))
(when (not (equal allout-widgets-mode-inhibit 'undecorated))
(allout-widgets-undecorate-region (point-min)(point-max))
(setq allout-widgets-mode-inhibit 'undecorated))))