+1999-10-05 Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
+
+ * mime-view.el (mime-preview-scroll-down-entity,
+ mime-preview-scroll-up-entity): Recenter when moving to
+ a next entity.
+ (mime-preview-move-scroll): New variable.
+ (mime-preview-move-to-previous, mime-preview-move-to-next):
+ Recenter according to the variable mime-preview-move-scroll.
+
1999-10-04 Katsumi Yamaoka <yamaoka@jpl.org>
* mime-view.el (mime-preview-move-to-next): Attempt to go to the
:group 'mime-view
:type 'file)
+(defcustom mime-preview-move-scroll nil
+ "*Decides whether to scroll when moving to next entity.
+When t, scroll the buffer. Non-nil but not t means scroll when
+the next entity is within next-screen-context-lines from top or
+buttom. Nil means don't scroll at all."
+ :group 'mime-view
+ :type '(choice (const :tag "Off" nil)
+ (const :tag "On" t)
+ (sexp :tag "Situation" 1)))
;;; @ in raw-buffer (representation space)
;;;
(if (and point
(>= point (point-min)))
(if (get-text-property (1- point) 'mime-view-entity)
- (goto-char point)
+ (progn (goto-char point)
+ (if
+ (or (eq mime-preview-move-scroll t)
+ (and mime-preview-move-scroll
+ (<= point
+ (save-excursion
+ (move-to-window-line 0)
+ (forward-line next-screen-context-lines)
+ (end-of-line)
+ (point)))))
+ (recenter (* -1 next-screen-context-lines))))
(goto-char (1- point))
(mime-preview-move-to-previous)
)
(goto-char point)
(if (null (get-text-property point 'mime-view-entity))
(mime-preview-move-to-next)
+ (and
+ (or (eq mime-preview-move-scroll t)
+ (and mime-preview-move-scroll
+ (>= point
+ (save-excursion
+ (move-to-window-line -1)
+ (forward-line
+ (* -1 next-screen-context-lines))
+ (beginning-of-line)
+ (point)))))
+ (recenter next-screen-context-lines))
))
(let ((f (assq (mime-preview-original-major-mode)
mime-preview-over-to-next-method-alist)))
(bottom (window-end (selected-window))))
(if (and (not h)
(> bottom point))
- (goto-char point)
+ (progn (goto-char point)
+ (recenter next-screen-context-lines))
(condition-case nil
(scroll-up h)
(end-of-buffer
(top (window-start (selected-window))))
(if (and (not h)
(< top point))
- (goto-char point)
+ (progn (goto-char point)
+ (recenter (* -1 next-screen-context-lines)))
(condition-case nil
(scroll-down h)
(beginning-of-buffer