summaryrefslogtreecommitdiff
path: root/lisp/image-mode.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-02-18 04:08:04 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-02-18 04:08:04 +0000
commit917844623bc50499a6b06c0d5f30d6a21dd1e7a5 (patch)
tree620e355d94c3bd2d1be3afcb881c8b3fcd0c8a48 /lisp/image-mode.el
parent228de8de4f72d92bdf4b3395086c826933ab6a72 (diff)
downloademacs-917844623bc50499a6b06c0d5f30d6a21dd1e7a5.tar.gz
(image-get-display-property): New fun.
(image-forward-hscroll, image-next-line, image-eol, image-eob, image-mode) (image-minor-mode, image-toggle-display-text, image-toggle-display): Use it.
Diffstat (limited to 'lisp/image-mode.el')
-rw-r--r--lisp/image-mode.el26
1 files changed, 16 insertions, 10 deletions
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 9411e5d5688..56dff23e9ba 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -88,6 +88,12 @@
'nomini
(selected-frame)))
+(defun image-get-display-property ()
+ (get-char-property (point-min) 'display
+ ;; There might be different images for different displays.
+ (if (eq (window-buffer) (current-buffer))
+ (selected-window))))
+
(defun image-forward-hscroll (&optional n)
"Scroll image in current window to the left by N character widths.
Stop if the right edge of the image is reached."
@@ -97,7 +103,7 @@ Stop if the right edge of the image is reached."
(image-set-window-hscroll (selected-window)
(max 0 (+ (window-hscroll) n))))
(t
- (let* ((image (get-char-property (point-min) 'display))
+ (let* ((image (image-get-display-property))
(edges (window-inside-edges))
(win-width (- (nth 2 edges) (nth 0 edges)))
(img-width (ceiling (car (image-size image)))))
@@ -120,7 +126,7 @@ Stop if the bottom edge of the image is reached."
(image-set-window-vscroll (selected-window)
(max 0 (+ (window-vscroll) n))))
(t
- (let* ((image (get-char-property (point-min) 'display))
+ (let* ((image (image-get-display-property))
(edges (window-inside-edges))
(win-height (- (nth 3 edges) (nth 1 edges)))
(img-height (ceiling (cdr (image-size image)))))
@@ -194,7 +200,7 @@ stopping if the top or bottom edge of the image is reached."
(and arg
(/= (setq arg (prefix-numeric-value arg)) 1)
(image-next-line (- arg 1)))
- (let* ((image (get-char-property (point-min) 'display))
+ (let* ((image (image-get-display-property))
(edges (window-inside-edges))
(win-width (- (nth 2 edges) (nth 0 edges)))
(img-width (ceiling (car (image-size image)))))
@@ -210,7 +216,7 @@ stopping if the top or bottom edge of the image is reached."
(defun image-eob ()
"Scroll to the bottom-right corner of the image in the current window."
(interactive)
- (let* ((image (get-char-property (point-min) 'display))
+ (let* ((image (image-get-display-property))
(edges (window-inside-edges))
(win-width (- (nth 2 edges) (nth 0 edges)))
(img-width (ceiling (car (image-size image))))
@@ -271,7 +277,7 @@ to toggle between display as an image and display as text."
(add-hook 'change-major-mode-hook 'image-toggle-display-text nil t)
(if (and (display-images-p)
- (not (get-char-property (point-min) 'display)))
+ (not (image-get-display-property)))
(image-toggle-display)
;; Set next vars when image is already displayed but local
;; variables were cleared by kill-all-local-variables
@@ -282,7 +288,7 @@ to toggle between display as an image and display as text."
(message "%s" (concat
(substitute-command-keys
"Type \\[image-toggle-display] to view as ")
- (if (get-char-property (point-min) 'display)
+ (if (image-get-display-property)
"text" "an image") "."))))
;;;###autoload
@@ -295,13 +301,13 @@ See the command `image-mode' for more information on this mode."
:version "22.1"
(if (not image-minor-mode)
(image-toggle-display-text)
- (if (get-char-property (point-min) 'display)
+ (if (image-get-display-property)
(setq cursor-type nil truncate-lines t)
(setq image-type "text"))
(add-hook 'change-major-mode-hook (lambda () (image-minor-mode -1)) nil t)
(message "%s" (concat (substitute-command-keys
"Type \\[image-toggle-display] to view the image as ")
- (if (get-char-property (point-min) 'display)
+ (if (image-get-display-property)
"text" "an image") "."))))
;;;###autoload
@@ -331,7 +337,7 @@ information on these modes."
(defun image-toggle-display-text ()
"Showing the text of the image file."
- (if (get-char-property (point-min) 'display)
+ (if (image-get-display-property)
(image-toggle-display)))
(defvar archive-superior-buffer)
@@ -342,7 +348,7 @@ information on these modes."
This command toggles between showing the text of the image file
and showing the image as an image."
(interactive)
- (if (get-char-property (point-min) 'display)
+ (if (image-get-display-property)
(let ((inhibit-read-only t)
(buffer-undo-list t)
(modified (buffer-modified-p)))