]> git.eshelyaron.com Git - emacs.git/commitdiff
(diary-fancy-display): Only switch modes if necessary.
authorGlenn Morris <rgm@gnu.org>
Fri, 4 Sep 2009 02:59:13 +0000 (02:59 +0000)
committerGlenn Morris <rgm@gnu.org>
Fri, 4 Sep 2009 02:59:13 +0000 (02:59 +0000)
(diary-fancy-overriding-map): New variable.
(diary-fancy-display-mode): Set minor-mode-overriding-map-alist.
Use view-mode.

lisp/ChangeLog
lisp/calendar/diary-lib.el

index 45e1b41765af9c3f79f6b76242611b64c61f9690..155b4804ebd00657a720e80b720d63a925f279a4 100644 (file)
@@ -1,5 +1,11 @@
 2009-09-04  Glenn Morris  <rgm@gnu.org>
 
+       * calendar/diary-lib.el (diary-fancy-display): Only switch modes if
+       necessary.
+       (diary-fancy-overriding-map): New variable.
+       (diary-fancy-display-mode): Set minor-mode-overriding-map-alist.
+       Use view-mode.
+
        * vc-rcs.el (vc-rcs-annotate-command): Use forward-line rather than
        goto-line.
 
index 732f2150001f082d542b297f091111abb8eae53e..1975be6c2ea7c5df11095bc703a304927c9f226e 100644 (file)
@@ -1019,7 +1019,8 @@ This is an option for `diary-display-function'."
                      (overlay-put
                       (make-overlay (match-beginning 0) (match-end 0))
                       'face temp-face)))))))
-      (diary-fancy-display-mode)
+      (or (eq major-mode 'diary-fancy-display-mode)
+          (diary-fancy-display-mode))
       (calendar-set-mode-line date-string)
       (message "Preparing diary...done"))))
 
@@ -2348,6 +2349,11 @@ Fontify the region between BEG and END, quietly unless VERBOSE is non-nil."
       (setq end (line-beginning-position 2)))
   (font-lock-default-fontify-region beg end verbose))
 
+(defvar diary-fancy-overriding-map (let ((map (make-sparse-keymap)))
+                                     (define-key map "q" 'quit-window)
+                                     map)
+  "Keymap overriding minor-mode maps in `diary-fancy-display-mode'.")
+
 (define-derived-mode diary-fancy-display-mode fundamental-mode
   "Diary"
   "Major mode used while displaying diary entries using Fancy Display."
@@ -2356,7 +2362,9 @@ Fontify the region between BEG and END, quietly unless VERBOSE is non-nil."
          t nil nil nil
          (font-lock-fontify-region-function
           . diary-fancy-font-lock-fontify-region-function)))
-  (local-set-key "q" 'quit-window))
+  (set (make-local-variable 'minor-mode-overriding-map-alist)
+       (list (cons t diary-fancy-overriding-map)))
+  (view-mode 1))
 
 (define-obsolete-function-alias 'fancy-diary-display-mode
   'diary-fancy-display-mode "23.1")