diff options
| author | Tassilo Horn | 2009-02-09 15:33:47 +0000 |
|---|---|---|
| committer | Tassilo Horn | 2009-02-09 15:33:47 +0000 |
| commit | bc19637df0c02ae3618cf7717a7d8d43626a7be8 (patch) | |
| tree | 8ae2af02f7858afad8359aad3cafc96a5d458109 | |
| parent | bdc3df307b9668a915629fa831e661fe2a28bbf7 (diff) | |
| download | emacs-bc19637df0c02ae3618cf7717a7d8d43626a7be8.tar.gz emacs-bc19637df0c02ae3618cf7717a7d8d43626a7be8.zip | |
(doc-view-scroll-up-or-next-page)
(doc-view-scroll-down-or-previous-page, doc-view-goto-page): Reset
the old hscroll value after switching pages.
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/doc-view.el | 30 |
2 files changed, 24 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1dfb5a96f11..a7389ce71d8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2009-02-09 Tassilo Horn <tassilo@member.fsf.org> | ||
| 2 | |||
| 3 | * doc-view.el (doc-view-scroll-up-or-next-page) | ||
| 4 | (doc-view-scroll-down-or-previous-page, doc-view-goto-page): Reset | ||
| 5 | the old hscroll value after switching pages. | ||
| 6 | |||
| 1 | 2009-02-09 Glenn Morris <rgm@gnu.org> | 7 | 2009-02-09 Glenn Morris <rgm@gnu.org> |
| 2 | 8 | ||
| 3 | * calendar/calendar.el (diary-entry-marker, calendar-today-marker) | 9 | * calendar/calendar.el (diary-entry-marker, calendar-today-marker) |
diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 6d8ad649b94..13ebe3e92f9 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el | |||
| @@ -346,7 +346,8 @@ Can be `dvi', `pdf', or `ps'.") | |||
| 346 | (defun doc-view-goto-page (page) | 346 | (defun doc-view-goto-page (page) |
| 347 | "View the page given by PAGE." | 347 | "View the page given by PAGE." |
| 348 | (interactive "nPage: ") | 348 | (interactive "nPage: ") |
| 349 | (let ((len (length doc-view-current-files))) | 349 | (let ((len (length doc-view-current-files)) |
| 350 | (hscroll (window-hscroll))) | ||
| 350 | (if (< page 1) | 351 | (if (< page 1) |
| 351 | (setq page 1) | 352 | (setq page 1) |
| 352 | (when (and (> page len) | 353 | (when (and (> page len) |
| @@ -379,6 +380,7 @@ Can be `dvi', `pdf', or `ps'.") | |||
| 379 | (let ((file (expand-file-name (format "page-%d.png" page) | 380 | (let ((file (expand-file-name (format "page-%d.png" page) |
| 380 | (doc-view-current-cache-dir)))) | 381 | (doc-view-current-cache-dir)))) |
| 381 | (doc-view-insert-image file :pointer 'arrow) | 382 | (doc-view-insert-image file :pointer 'arrow) |
| 383 | (set-window-hscroll (selected-window) hscroll) | ||
| 382 | (when (and (not (file-exists-p file)) | 384 | (when (and (not (file-exists-p file)) |
| 383 | doc-view-current-converter-processes) | 385 | doc-view-current-converter-processes) |
| 384 | ;; The PNG file hasn't been generated yet. | 386 | ;; The PNG file hasn't been generated yet. |
| @@ -418,22 +420,26 @@ Can be `dvi', `pdf', or `ps'.") | |||
| 418 | (defun doc-view-scroll-up-or-next-page () | 420 | (defun doc-view-scroll-up-or-next-page () |
| 419 | "Scroll page up if possible, else goto next page." | 421 | "Scroll page up if possible, else goto next page." |
| 420 | (interactive) | 422 | (interactive) |
| 421 | (when (= (window-vscroll) (image-scroll-up nil)) | 423 | (let ((hscroll (window-hscroll)) |
| 422 | (let ((cur-page (doc-view-current-page))) | 424 | (cur-page (doc-view-current-page))) |
| 425 | (when (= (window-vscroll) (image-scroll-up nil)) | ||
| 423 | (doc-view-next-page) | 426 | (doc-view-next-page) |
| 424 | (when (/= cur-page (doc-view-current-page)) | 427 | (when (/= cur-page (doc-view-current-page)) |
| 425 | (image-bob) | 428 | (image-bob) |
| 426 | (image-bol 1))))) | 429 | (image-bol 1)) |
| 430 | (set-window-hscroll (selected-window) hscroll)))) | ||
| 427 | 431 | ||
| 428 | (defun doc-view-scroll-down-or-previous-page () | 432 | (defun doc-view-scroll-down-or-previous-page () |
| 429 | "Scroll page down if possible, else goto previous page." | 433 | "Scroll page down if possible, else goto previous page." |
| 430 | (interactive) | 434 | (interactive) |
| 431 | (when (= (window-vscroll) (image-scroll-down nil)) | 435 | (let ((hscroll (window-hscroll)) |
| 432 | (let ((cur-page (doc-view-current-page))) | 436 | (cur-page (doc-view-current-page))) |
| 437 | (when (= (window-vscroll) (image-scroll-down nil)) | ||
| 433 | (doc-view-previous-page) | 438 | (doc-view-previous-page) |
| 434 | (when (/= cur-page (doc-view-current-page)) | 439 | (when (/= cur-page (doc-view-current-page)) |
| 435 | (image-eob) | 440 | (image-eob) |
| 436 | (image-bol 1))))) | 441 | (image-bol 1)) |
| 442 | (set-window-hscroll (selected-window) hscroll)))) | ||
| 437 | 443 | ||
| 438 | ;;;; Utility Functions | 444 | ;;;; Utility Functions |
| 439 | 445 | ||
| @@ -1104,7 +1110,7 @@ toggle between displaying the document or editing it as text. | |||
| 1104 | major-mode))) | 1110 | major-mode))) |
| 1105 | (kill-all-local-variables) | 1111 | (kill-all-local-variables) |
| 1106 | (set (make-local-variable 'doc-view-previous-major-mode) prev-major-mode)) | 1112 | (set (make-local-variable 'doc-view-previous-major-mode) prev-major-mode)) |
| 1107 | 1113 | ||
| 1108 | ;; Figure out the document type. | 1114 | ;; Figure out the document type. |
| 1109 | (let ((name-types | 1115 | (let ((name-types |
| 1110 | (when buffer-file-name | 1116 | (when buffer-file-name |
| @@ -1128,7 +1134,7 @@ toggle between displaying the document or editing it as text. | |||
| 1128 | name-types content-types)) | 1134 | name-types content-types)) |
| 1129 | name-types content-types | 1135 | name-types content-types |
| 1130 | (error "Cannot determine the document type"))))) | 1136 | (error "Cannot determine the document type"))))) |
| 1131 | 1137 | ||
| 1132 | (doc-view-make-safe-dir doc-view-cache-directory) | 1138 | (doc-view-make-safe-dir doc-view-cache-directory) |
| 1133 | ;; Handle compressed files, remote files, files inside archives | 1139 | ;; Handle compressed files, remote files, files inside archives |
| 1134 | (set (make-local-variable 'doc-view-buffer-file-name) | 1140 | (set (make-local-variable 'doc-view-buffer-file-name) |
| @@ -1150,7 +1156,7 @@ toggle between displaying the document or editing it as text. | |||
| 1150 | (t buffer-file-name))) | 1156 | (t buffer-file-name))) |
| 1151 | (when (not (string= doc-view-buffer-file-name buffer-file-name)) | 1157 | (when (not (string= doc-view-buffer-file-name buffer-file-name)) |
| 1152 | (write-region nil nil doc-view-buffer-file-name)) | 1158 | (write-region nil nil doc-view-buffer-file-name)) |
| 1153 | 1159 | ||
| 1154 | (add-hook 'change-major-mode-hook | 1160 | (add-hook 'change-major-mode-hook |
| 1155 | (lambda () | 1161 | (lambda () |
| 1156 | (doc-view-kill-proc) | 1162 | (doc-view-kill-proc) |
| @@ -1158,14 +1164,14 @@ toggle between displaying the document or editing it as text. | |||
| 1158 | nil t) | 1164 | nil t) |
| 1159 | (add-hook 'clone-indirect-buffer-hook 'doc-view-clone-buffer-hook nil t) | 1165 | (add-hook 'clone-indirect-buffer-hook 'doc-view-clone-buffer-hook nil t) |
| 1160 | (add-hook 'kill-buffer-hook 'doc-view-kill-proc nil t) | 1166 | (add-hook 'kill-buffer-hook 'doc-view-kill-proc nil t) |
| 1161 | 1167 | ||
| 1162 | (remove-overlays (point-min) (point-max) 'doc-view t) ;Just in case. | 1168 | (remove-overlays (point-min) (point-max) 'doc-view t) ;Just in case. |
| 1163 | ;; Keep track of display info ([vh]scroll, page number, overlay, | 1169 | ;; Keep track of display info ([vh]scroll, page number, overlay, |
| 1164 | ;; ...) for each window in which this document is shown. | 1170 | ;; ...) for each window in which this document is shown. |
| 1165 | (add-hook 'image-mode-new-window-functions | 1171 | (add-hook 'image-mode-new-window-functions |
| 1166 | 'doc-view-new-window-function nil t) | 1172 | 'doc-view-new-window-function nil t) |
| 1167 | (image-mode-setup-winprops) | 1173 | (image-mode-setup-winprops) |
| 1168 | 1174 | ||
| 1169 | (set (make-local-variable 'mode-line-position) | 1175 | (set (make-local-variable 'mode-line-position) |
| 1170 | '(" P" (:eval (number-to-string (doc-view-current-page))) | 1176 | '(" P" (:eval (number-to-string (doc-view-current-page))) |
| 1171 | "/" (:eval (number-to-string (length doc-view-current-files))))) | 1177 | "/" (:eval (number-to-string (length doc-view-current-files))))) |