mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-06 07:31:13 -08:00
(insert-image-file): Add yank-handler.
(image-file-yank-handler): Yank handler to make unique copies of images when they are yanked into a buffer next to each other.
This commit is contained in:
parent
3a7f4c189c
commit
6ed554f2ac
1 changed files with 14 additions and 0 deletions
|
|
@ -118,6 +118,7 @@ the command `insert-file-contents'."
|
|||
(create-image data nil t))
|
||||
(props
|
||||
`(display ,image
|
||||
yank-handler (image-file-yank-handler)
|
||||
intangible ,image
|
||||
rear-nonsticky (display intangible)
|
||||
;; This a cheap attempt to make the whole buffer
|
||||
|
|
@ -135,6 +136,19 @@ the command `insert-file-contents'."
|
|||
(setq truncate-lines t))))
|
||||
rval))
|
||||
|
||||
;; We use a yank-handler to make yanked images unique, so that
|
||||
;; yanking two copies of the same image next to each other are
|
||||
;; recognized as two different images.
|
||||
(defun image-file-yank-handler (string)
|
||||
"Yank handler for inserting an image into a buffer."
|
||||
(let ((image (get-text-property 0 'display string)))
|
||||
(if (consp image)
|
||||
(put-text-property 0 (length string)
|
||||
'display
|
||||
(cons (car image) (cdr image))
|
||||
string))
|
||||
(insert string)))
|
||||
|
||||
(put 'image-file-handler 'safe-magic t)
|
||||
(defun image-file-handler (operation &rest args)
|
||||
"Filename handler for inserting image files.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue