diff lisp/vm/vm-page.el @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents 859a2309aef8
children 441bb1e64a06
line wrap: on
line diff
--- a/lisp/vm/vm-page.el	Mon Aug 13 08:50:31 2007 +0200
+++ b/lisp/vm/vm-page.el	Mon Aug 13 08:51:03 2007 +0200
@@ -116,13 +116,19 @@
   (let ((direction (prefix-numeric-value arg))
 	(w (selected-window)))
     (condition-case error-data
-	(progn
-	  (if (and (> direction 0)
-		   (pos-visible-in-window-p
-		    (vm-text-end-of (car vm-message-pointer))))
-	      (signal 'end-of-buffer nil)
-	    (scroll-up arg))
-	  nil )
+	(progn (scroll-up arg) nil)
+;; this looks like it should work, but doesn't because the
+;; redisplay code is schizophrenic when it comes to updates.  A
+;; window position may no longer be visible but
+;; pos-visible-in-window-p will still say it is because it was
+;; visible before some window size change happened.
+;;	(progn
+;;	  (if (and (> direction 0)
+;;		   (pos-visible-in-window-p
+;;		    (vm-text-end-of (car vm-message-pointer))))
+;;	      (signal 'end-of-buffer nil)
+;;	    (scroll-up arg))
+;;	  nil )
       (error
        (if (or (and (< direction 0)
 		    (> (point-min) (vm-text-of (car vm-message-pointer))))
@@ -551,7 +557,9 @@
 (defun vm-show-current-message ()
   (and vm-display-using-mime
        vm-auto-decode-mime-messages
-       (not vm-mime-decoded)
+       (if vm-mail-buffer
+	   (not (vm-buffer-variable-value vm-mail-buffer 'vm-mime-decoded))
+	 (not vm-mime-decoded))
        (not (vm-mime-plain-message-p (car vm-message-pointer)))
        (vm-decode-mime-message))
   (vm-save-buffer-excursion