# HG changeset patch # User Richard M. Stallman # Date 866444137 0 # Node ID a42f063f003b3e37250cfe5a9f09a8dbaa42abeb # Parent 29c37882ee1f2cec25a8d84c0dc755bdd519aa97 Don't globally add to change-major-mode-hook. (view-mode-enable): Add to change-major-mode-hook locally here. (view-mode-disable): Remove from it locally here. diff -r 29c37882ee1f -r a42f063f003b lisp/view.el --- a/lisp/view.el Mon Jun 16 06:24:22 1997 +0000 +++ b/lisp/view.el Mon Jun 16 06:55:37 1997 +0000 @@ -187,10 +187,6 @@ (setq minor-mode-map-alist (cons (cons 'view-mode view-mode-map) minor-mode-map-alist))) -;; Always leave view mode before changing major mode. -;; This is to guarantee that the buffer-read-only variable is restored. -(add-hook 'change-major-mode-hook 'view-mode-disable) - ;;; Commands that enter or exit view mode. ;;;###autoload @@ -399,6 +395,10 @@ (defun view-mode-enable () "Turn on View mode." + ;; Always leave view mode before changing major mode. + ;; This is to guarantee that the buffer-read-only variable is restored. + (make-local-hook 'change-major-mode-hook) + (add-hook 'change-major-mode-hook 'view-mode-disable nil t) (setq view-mode t view-page-size (view-page-size-default view-page-size) view-half-page-size (or view-half-page-size (/ (view-window-size) 2)) @@ -415,6 +415,7 @@ (defun view-mode-disable () "Turn off View mode." + (remove-hook 'change-major-mode-hook 'view-mode-disable t) (and view-overlay (delete-overlay view-overlay)) (setq view-mode nil Helper-return-blurb view-old-Helper-return-blurb