changeset 112036:f559229a64b8

* doc-view.el (doc-view-mode, doc-view-toggle-display): Use normal-mode without doc-view-mode bindings in auto-mode-alist as fallback instead of hard coding fundamental mode.
author Tassilo Horn <tassilo@member.fsf.org>
date Thu, 30 Dec 2010 15:47:53 +0100
parents 33f84f010bcb
children 5879f36f423b
files lisp/ChangeLog lisp/doc-view.el
diffstat 2 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Dec 30 14:53:22 2010 +0100
+++ b/lisp/ChangeLog	Thu Dec 30 15:47:53 2010 +0100
@@ -1,3 +1,9 @@
+2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
+
+	* doc-view.el (doc-view-mode, doc-view-toggle-display): Use
+	normal-mode without doc-view-mode bindings in auto-mode-alist as
+	fallback instead of hard coding fundamental mode.
+
 2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
 
 	* doc-view.el (doc-view-doc->txt): Handle OpenDocument (or MS
--- a/lisp/doc-view.el	Thu Dec 30 14:53:22 2010 +0100
+++ b/lisp/doc-view.el	Thu Dec 30 15:47:53 2010 +0100
@@ -1047,7 +1047,6 @@
 
 ;;;;; Toggle between editing and viewing
 
-
 (defun doc-view-toggle-display ()
   "Toggle between editing a document as text or viewing it."
   (interactive)
@@ -1058,11 +1057,12 @@
 	(setq buffer-read-only nil)
 	(remove-overlays (point-min) (point-max) 'doc-view t)
 	(set (make-local-variable 'image-mode-winprops-alist) t)
-	;; Switch to the previously used major mode or fall back to fundamental
-	;; mode.
+	;; Switch to the previously used major mode or fall back to
+	;; normal mode.
 	(if doc-view-previous-major-mode
 	    (funcall doc-view-previous-major-mode)
-	  (fundamental-mode))
+	  (let ((auto-mode-alist (rassq-delete-all 'doc-view-mode auto-mode-alist)))
+	    (normal-mode)))
 	(doc-view-minor-mode 1))
     ;; Switch to doc-view-mode
     (when (and (buffer-modified-p)
@@ -1271,7 +1271,8 @@
 
     (let* ((prev-major-mode (if (eq major-mode 'doc-view-mode)
 				doc-view-previous-major-mode
-			      major-mode)))
+			      (when (not (eq major-mode 'fundamental-mode))
+				major-mode))))
       (kill-all-local-variables)
       (set (make-local-variable 'doc-view-previous-major-mode) prev-major-mode))