Commit bb9dfee1 authored by Glenn Morris's avatar Glenn Morris

Display a mode-line frame counter for animated images

* lisp/image.el (image-current-frame): New variable.
(image-animate-timeout): Set image-current-frame.

* lisp/image-mode.el (image-mode): For animated images,
display a frame counter via mode-line-process.
parent ef5ae980
2013-02-16 Glenn Morris <>
* image.el (image-current-frame): New variable.
(image-animate-timeout): Set image-current-frame.
* image-mode.el (image-mode): For animated images,
display a frame counter via mode-line-process.
* font-lock.el (lisp-font-lock-keywords-1): Add defvar-local.
2013-02-15 Stefan Monnier <>
......@@ -409,11 +409,18 @@ to toggle between display as an image and display as text."
(run-mode-hooks 'image-mode-hook)
(let ((image (image-get-display-property))
(msg1 (substitute-command-keys
"Type \\[image-toggle-display] to view the image as ")))
"Type \\[image-toggle-display] to view the image as "))
((null image)
(message "%s" (concat msg1 "an image.")))
((image-animated-p image)
((setq animated (image-animated-p image))
(setq image-current-frame (or (plist-get (cdr image) :index) 0)
`(:eval (propertize (format " [%s/%s]"
(1+ image-current-frame)
,(car animated))
'help-echo "Frame number")))
(message "%s"
(concat msg1 "text, or "
......@@ -657,6 +657,9 @@ number, play until that number of seconds has elapsed."
(setq timer nil)))
(defvar-local image-current-frame nil
"The frame index of the current animated image.")
;; FIXME? The delay may not be the same for different sub-images,
;; hence we need to call image-animated-p to return it.
;; But it also returns count, so why do we bother passing that as an
......@@ -672,6 +675,7 @@ LIMIT determines when to stop. If t, loop forever. If nil, stop
after LIMIT seconds have elapsed.
The minimum delay between successive frames is 0.01s."
(plist-put (cdr image) :index n)
(setq image-current-frame n)
(setq n (1+ n))
(let* ((time (float-time))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment