1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-29 11:02:01 +00:00

* doc-view.el (doc-view-insert-image): Don't modify overlay

associated with pseudo winprops entry, and implement horizontal
centering of image in case it's smaller than the window
(bug#13887).
This commit is contained in:
Tassilo Horn 2013-03-14 16:24:04 +01:00
parent 2407788fbb
commit d35f586402
2 changed files with 61 additions and 38 deletions

View File

@ -1,3 +1,10 @@
2013-03-14 Tassilo Horn <tsdh@gnu.org>
* doc-view.el (doc-view-insert-image): Don't modify overlay
associated with pseudo winprops entry, and implement horizontal
centering of image in case it's smaller than the window
(bug#13887).
2013-03-13 Karl Fogel <kfogel@red-bean.com>
* saveplace.el (save-place-alist-to-file): Don't sort

View File

@ -1250,17 +1250,33 @@ ARGS is a list of image descriptors."
(when doc-view-pending-cache-flush
(clear-image-cache)
(setq doc-view-pending-cache-flush nil))
(let ((ol (doc-view-current-overlay))
(image (if (and file (file-readable-p file))
(let ((ol (doc-view-current-overlay)))
;; ol might be deleted (see `doc-view-new-window-function'), in
;; which case we don't want to modify it.
(when (overlay-buffer ol)
(let* ((image (if (and file (file-readable-p file))
(if (not (and doc-view-scale-internally
(fboundp 'imagemagick-types)))
(apply 'create-image file doc-view--image-type nil args)
(unless (member :width args)
(setq args `(,@args :width ,doc-view-image-width)))
(apply 'create-image file 'imagemagick nil args))))
(slice (doc-view-current-slice)))
(slice (doc-view-current-slice))
(img-width (and image (car (image-size image))))
(displayed-img-width (if (and image slice)
(* (/ (float (nth 2 slice))
(car (image-size image 'pixels)))
img-width)
img-width))
(window-width (window-width (selected-window))))
(setf (doc-view-current-image) image)
(move-overlay ol (point-min) (point-max))
;; In case the window is wider than the image, center the image
;; horizontally.
(overlay-put ol 'before-string
(when (and image (> window-width displayed-img-width))
(propertize " " 'display
`(space :align-to (+ center (-0.5 . ,displayed-img-width))))))
(overlay-put ol 'display
(cond
(image
@ -1287,7 +1303,7 @@ ARGS is a list of image descriptors."
(vscroll (image-mode-window-get 'vscroll win)))
;; Reset scroll settings, in case they were changed.
(if hscroll (set-window-hscroll win hscroll))
(if vscroll (set-window-vscroll win vscroll)))))))
(if vscroll (set-window-vscroll win vscroll)))))))))
(defun doc-view-sort (a b)
"Return non-nil if A should be sorted before B.