1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

2007-12-26 Tassilo Horn <tassilo@member.fsf.org>

* image-mode.el (image-bookmark-make-cell, image-bookmark-jump):
	New functions.
	(image-mode): Set bookmark-make-cell-function appropriately.

	* doc-view.el (doc-view-bookmark-jump): Correct misspelled arg
	name.
This commit is contained in:
Tassilo Horn 2007-12-26 11:48:37 +00:00
parent 1666a6b3e8
commit 137187c884
3 changed files with 42 additions and 1 deletions

View File

@ -1,5 +1,12 @@
2007-12-26 Tassilo Horn <tassilo@member.fsf.org>
* image-mode.el (image-bookmark-make-cell, image-bookmark-jump):
New functions.
(image-mode): Set bookmark-make-cell-function appropriately.
* doc-view.el (doc-view-bookmark-jump): Correct misspelled arg
name.
* bookmark.el (bookmark-make-cell-function): New variable.
(bookmark-make): Call bookmark-make-cell-function's function
instead of bookmark-make-cell.

View File

@ -1019,7 +1019,7 @@ See the command `doc-view-mode' for more information on this mode."
(defun doc-view-bookmark-jump (bmk)
(save-window-excursion
(let ((filename (bookmark-get-filename bmk))
(page (cdr (assq 'page (bookmark-get-bookmark-record bookmark)))))
(page (cdr (assq 'page (bookmark-get-bookmark-record bmk)))))
(find-file filename)
(when (not (eq major-mode 'doc-view-mode))
(doc-view-toggle-display))

View File

@ -219,6 +219,9 @@ to toggle between display as an image and display as text."
(kill-all-local-variables)
(setq mode-name "Image[text]")
(setq major-mode 'image-mode)
;; Use our own bookmarking function for images.
(set (make-local-variable 'bookmark-make-cell-function)
'image-bookmark-make-cell)
(add-hook 'change-major-mode-hook 'image-toggle-display-text nil t)
(if (and (display-images-p)
(not (get-char-property (point-min) 'display)))
@ -352,6 +355,37 @@ and showing the image as an image."
(if (called-interactively-p)
(message "Repeat this command to go back to displaying the file as text")))))
;;; Support for bookmark.el
(defun image-bookmark-make-cell (annotation &rest args)
(let ((the-record
`((filename . ,(buffer-file-name))
(image-type . ,image-type)
(position . ,(point))
(handler . image-bookmark-jump))))
;; Take no chances with text properties
(set-text-properties 0 (length annotation) nil annotation)
(when annotation
(nconc the-record (list (cons 'annotation annotation))))
;; Finally, return the completed record.
the-record))
;;;###autoload
(defun image-bookmark-jump (bmk)
(save-window-excursion
(let ((filename (bookmark-get-filename bmk))
(type (cdr (assq 'image-type (bookmark-get-bookmark-record bmk))))
(pos (bookmark-get-position bmk)))
(find-file filename)
(when (not (string= image-type type))
(image-toggle-display))
(when (string= image-type "text")
(goto-char pos))
(cons (current-buffer) pos))))
(provide 'image-mode)
;; arch-tag: b5b2b7e6-26a7-4b79-96e3-1546b5c4c6cb