sfondo
Eww, come molti altri pacchetti, utilizza la display
proprietà text per visualizzare le immagini. Ecco perché attivare o disattivare la invisible
proprietà text. Stai rendendo il testo stesso invisibile ma la display
proprietà viene ancora mostrata.
In effetti, questo è qualcosa di così comune che il codice seguente dovrebbe funzionare su qualsiasi buffer che visualizza immagini (non solo eww).
Soluzione
La soluzione più semplice è rimuovere la display
proprietà dall'intero buffer. Ma questa è un'azione irreversibile, non saresti in grado di riattivare le immagini senza aggiornare la pagina.
La soluzione più solida, presentata di seguito, rimuove le display
proprietà nel buffer e contemporaneamente esegue il backup dell'immagine su un'altra proprietà (inutile). Quando viene chiamato di nuovo, il comando sposta le immagini di backup nella display
proprietà.
(defvar-local endless/display-images t)
(defun endless/toggle-image-display ()
"Toggle images display on current buffer."
(interactive)
(setq endless/display-images
(null endless/display-images))
(endless/backup-display-property endless/display-images))
Questo è il tipo che esegue il backup e il ripristino ovunque. Il codice della proprietà del testo non è tremendamente facile da leggere, ma penso che questa funzione sia abbastanza breve da essere autoesplicativa.
(defun endless/backup-display-property (invert &optional object)
"Move the 'display property at POS to 'display-backup.
Only applies if display property is an image.
If INVERT is non-nil, move from 'display-backup to 'display
instead.
Optional OBJECT specifies the string or buffer. Nil means current
buffer."
(let* ((inhibit-read-only t)
(from (if invert 'display-backup 'display))
(to (if invert 'display 'display-backup))
(pos (point-min))
left prop)
(while (and pos (/= pos (point-max)))
(if (get-text-property pos from object)
(setq left pos)
(setq left (next-single-property-change pos from object)))
(if (or (null left) (= left (point-max)))
(setq pos nil)
(setq prop (get-text-property left from object))
(setq pos (or (next-single-property-change left from object)
(point-max)))
(when (eq (car prop) 'image)
(add-text-properties left pos (list from nil to prop) object))))))
Per favore fatemi sapere se funziona! L'ho provato solo su pagine Web molto semplici.