Mercurial > emacs
changeset 87412:f6ce12419345
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.
author | Tassilo Horn <tassilo@member.fsf.org> |
---|---|
date | Wed, 26 Dec 2007 11:48:37 +0000 |
parents | 9ac481bc897b |
children | 0f888390c9b8 |
files | lisp/ChangeLog lisp/doc-view.el lisp/image-mode.el |
diffstat | 3 files changed, 42 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Dec 26 08:53:06 2007 +0000 +++ b/lisp/ChangeLog Wed Dec 26 11:48:37 2007 +0000 @@ -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.
--- a/lisp/doc-view.el Wed Dec 26 08:53:06 2007 +0000 +++ b/lisp/doc-view.el Wed Dec 26 11:48:37 2007 +0000 @@ -1019,7 +1019,7 @@ (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))
--- a/lisp/image-mode.el Wed Dec 26 08:53:06 2007 +0000 +++ b/lisp/image-mode.el Wed Dec 26 11:48:37 2007 +0000 @@ -219,6 +219,9 @@ (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 @@ (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