diff options
author | Ken Manheimer <ken.manheimer@gmail.com> | 2011-07-05 14:54:08 -0400 |
---|---|---|
committer | Ken Manheimer <ken.manheimer@gmail.com> | 2011-07-05 14:54:08 -0400 |
commit | 919d884a6dc860fc4268a5c4ec44e2e80a42836f (patch) | |
tree | 8ac1d25a18a5c635d76627d2c6b6bee0245b5f3a | |
parent | 450a0f09279df347a10d6c1e4b809a5082daf9c8 (diff) | |
download | emacs-919d884a6dc860fc4268a5c4ec44e2e80a42836f.tar.gz |
* allout.el (allout-post-undo-hook): New allout outline-change event hook
to signal undo activity.
(allout-post-command-business): Run allout-post-undo-hook if an undo just
occurred.
(allout-after-copy-or-kill-hook), (allout-mode): Minor docstring changes.
* allout-widgets.el (allout-widgets-after-undo-function): Ensure the
integrity of the current item's decoration after it has been in the
vicinity of an undo.
(allout-widgets-mode): Include allout-widgets-after-undo-function on the
new allout-post-undo-hook.
-rw-r--r-- | lisp/ChangeLog | 15 | ||||
-rw-r--r-- | lisp/allout-widgets.el | 10 | ||||
-rw-r--r-- | lisp/allout.el | 12 |
3 files changed, 36 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 66215266bdb..20679038120 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,18 @@ +2011-07-05 Ken Manheimer <ken.manheimer@gmail.com> + + * allout.el (allout-post-undo-hook): New allout outline-change + event hook to signal undo activity. + (allout-post-command-business): Run allout-post-undo-hook if an + undo just occurred. + (allout-after-copy-or-kill-hook), (allout-mode): Minor docstring + changes. + * allout-widgets.el (allout-widgets-after-undo-function): Ensure + the integrity of the current item's decoration after it has been + in the vicinity of an undo. + (allout-widgets-mode): Include allout-widgets-after-undo-function + on the new allout-post-undo-hook. + + 2011-07-05 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/lisp-mode.el (lisp-interaction-mode-abbrev-table): diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el index 8dab7411750..ef75e7157e6 100644 --- a/lisp/allout-widgets.el +++ b/lisp/allout-widgets.el @@ -561,6 +561,8 @@ outline hot-spot navigation \(see `allout-mode')." 'allout-widgets-shifts-recorder nil 'local) (add-hook 'allout-after-copy-or-kill-hook 'allout-widgets-after-copy-or-kill-function nil 'local) + (add-hook 'allout-post-undo-hook + 'allout-widgets-after-undo-function nil 'local) (add-hook 'before-change-functions 'allout-widgets-before-change-handler nil 'local) @@ -1130,6 +1132,14 @@ Dispatched by `allout-widgets-post-command-business' in response to Intended for use on allout-after-copy-or-kill-hook." (if (car kill-ring) (setcar kill-ring (allout-widgets-undecorate-text (car kill-ring))))) +;;;_ > allout-widgets-after-undo-function () +(defun allout-widgets-after-undo-function () + "Do allout-widgets processing of text after an undo. + +Intended for use on allout-post-undo-hook." + (save-excursion + (if (allout-goto-prefix) + (allout-redecorate-item (allout-get-or-create-item-widget))))) ;;;_ > allout-widgets-exposure-undo-recorder (widget from-state) (defun allout-widgets-exposure-undo-recorder (widget) diff --git a/lisp/allout.el b/lisp/allout.el index 5b8a7a7de1a..592a64c647a 100644 --- a/lisp/allout.el +++ b/lisp/allout.el @@ -1461,7 +1461,15 @@ This hook might be invoked multiple times by a single command.") (defvar allout-after-copy-or-kill-hook nil "*Hook that's run after copying outline text. -Functions on the hook should not take any arguments.") +Functions on the hook should not require any arguments.") +;;;_ = allout-post-undo-hook +(defvar allout-post-undo-hook nil + "*Hook that's run after undo activity. + +The item that's current when the hook is run *may* be the one +that was affected by the undo. + +Functions on the hook should not require any arguments.") ;;;_ = allout-outside-normal-auto-fill-function (defvar allout-outside-normal-auto-fill-function nil "Value of normal-auto-fill-function outside of allout mode. @@ -1874,6 +1882,7 @@ without changes to the allout core. Here are key ones: `allout-structure-deleted-hook' `allout-structure-shifted-hook' `allout-after-copy-or-kill-hook' +`allout-post-undo-hook' Terminology @@ -3313,6 +3322,7 @@ coordinating with allout activity.") (when allout-just-did-undo (setq allout-just-did-undo nil) + (run-hooks 'allout-post-undo-hook) (cond ((and (= buffer-saved-size -1) allout-auto-save-temporarily-disabled) ;; user possibly undid a decryption, deinhibit auto-save: |