summaryrefslogtreecommitdiff
path: root/lisp/follow.el
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2007-10-19 10:54:36 +0000
committerJuanma Barranquero <lekktu@gmail.com>2007-10-19 10:54:36 +0000
commitfc7793831bdef46fef2cb400f2839fd846987110 (patch)
tree8d594e40ec7dae6a847da7b232d5a7f015c31eb9 /lisp/follow.el
parent7b82c3b635c43691f6fb42ca6955c308b81ddafb (diff)
downloademacs-fc7793831bdef46fef2cb400f2839fd846987110.tar.gz
(follow-unload-function): New function.
Diffstat (limited to 'lisp/follow.el')
-rw-r--r--lisp/follow.el39
1 files changed, 35 insertions, 4 deletions
diff --git a/lisp/follow.el b/lisp/follow.el
index 55a331a22d3..50760cd9909 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -712,7 +712,7 @@ in your `~/.emacs' file:
;;}}}
;;{{{ Movement
-;; Note, these functions are not very useful, atleast not unless you
+;; Note, these functions are not very useful, at least not unless you
;; rebind the rather cumbersome key sequence `C-c . p'.
(defun follow-next-window ()
@@ -1267,7 +1267,7 @@ position of the first window. Otherwise it is a good guess."
(let ((done nil)
win-start
res)
- ;; Always calculate what happend when no line is displayed in the first
+ ;; Always calculate what happens when no line is displayed in the first
;; window. (The `previous' res is needed below!)
(goto-char guess)
(vertical-motion 0 (car windows))
@@ -1508,9 +1508,9 @@ non-first windows in Follow mode."
(setq win-start-end (follow-windows-start-end windows))
(follow-invalidate-cache)
;; When the point ends up in another window. This
- ;; happends when dest is in the beginning of the
+ ;; happens when dest is in the beginning of the
;; file and the selected window is not the first.
- ;; It can also, in rare situations happend when
+ ;; It can also, in rare situations happen when
;; long lines are used and there is a big
;; difference between the width of the windows.
;; (When scrolling one line in a wide window which
@@ -2162,6 +2162,37 @@ This prevents `mouse-drag-region' from messing things up."
;;{{{ The end
+(defun follow-unload-function ()
+ (easy-menu-remove-item nil '("Tools") "Follow")
+ (follow-stop-intercept-process-output)
+ (dolist (group '((before
+ ;; XEmacs
+ isearch-done
+ ;; both
+ set-process-filter sit-for move-overlay)
+ (after
+ ;; Emacs
+ scroll-bar-drag scroll-bar-drag-1 scroll-bar-scroll-down
+ scroll-bar-scroll-up scroll-bar-set-window-start
+ ;; XEmacs
+ scrollbar-line-down scrollbar-line-up scrollbar-page-down
+ scrollbar-page-up scrollbar-to-bottom scrollbar-to-top
+ scrollbar-vertical-drag
+ ;; both
+ process-filter)))
+ (let ((class (car group)))
+ (dolist (fun (cdr group))
+ (when (functionp fun)
+ (condition-case nil
+ (progn
+ (ad-remove-advice fun class
+ (intern (concat "follow-" (symbol-name fun))))
+ (ad-update fun))
+ (error nil))))))
+ nil)
+
+(defvar follow-unload-function 'follow-unload-function)
+
;;
;; We're done!
;;