aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Jasper2015-11-30 17:55:35 +0100
committerUlf Jasper2015-11-30 18:02:36 +0100
commitde203a67d4c3762edd8ee7fdd346b4728331354d (patch)
tree6acb2e8f912d596be8aa38c781f41bf5eda647b4
parent1564a265b94d793288a0ccb56b76af7c3b7ca411 (diff)
downloademacs-de203a67d4c3762edd8ee7fdd346b4728331354d.tar.gz
emacs-de203a67d4c3762edd8ee7fdd346b4728331354d.zip
Fix scrambling of html-rendered item buffers
* net/newst-treeview.el (newsticker--treeview-render-text): Fix scrambling of contents by wrapping call to html-renderer in save-selected-window.
-rw-r--r--lisp/net/newst-treeview.el50
1 files changed, 28 insertions, 22 deletions
diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
index 0c2df8897d7..4f81b864970 100644
--- a/lisp/net/newst-treeview.el
+++ b/lisp/net/newst-treeview.el
@@ -267,28 +267,34 @@ their id stays constant."
267 "Render text between markers START and END." 267 "Render text between markers START and END."
268 (if newsticker-html-renderer 268 (if newsticker-html-renderer
269 (condition-case error-data 269 (condition-case error-data
270 (save-excursion 270 ;; Need to save selected window in order to prevent mixing
271 (set-marker-insertion-type end t) 271 ;; up contents of the item buffer. This happens with shr
272 ;; check whether it is necessary to call html renderer 272 ;; which does some smart optimizations that apparently
273 ;; (regexp inspired by htmlr.el) 273 ;; interfere with our own, maybe not-so-smart, optimizations.
274 (goto-char start) 274 (save-selected-window
275 (when (re-search-forward 275 (save-excursion
276 "</?[A-Za-z1-6]*\\|&#?[A-Za-z0-9]+;" end t) 276 (set-marker-insertion-type end t)
277 ;; (message "%s" (newsticker--title item)) 277 ;; check whether it is necessary to call html renderer
278 (let ((w3m-fill-column (if newsticker-use-full-width 278 ;; (regexp inspired by htmlr.el)
279 -1 fill-column)) 279 (goto-char start)
280 (w3-maximum-line-length 280 (when (re-search-forward
281 (if newsticker-use-full-width nil fill-column))) 281 "</?[A-Za-z1-6]*\\|&#?[A-Za-z0-9]+;" end t)
282 (save-excursion 282 ;; (message "%s" (newsticker--title item))
283 (funcall newsticker-html-renderer start end))) 283 (let ((w3m-fill-column (if newsticker-use-full-width
284 ;;(cond ((eq newsticker-html-renderer 'w3m-region) 284 -1 fill-column))
285 ;; (add-text-properties start end (list 'keymap 285 (w3-maximum-line-length
286 ;; w3m-minor-mode-map))) 286 (if newsticker-use-full-width nil fill-column)))
287 ;;((eq newsticker-html-renderer 'w3-region) 287 (select-window (newsticker--treeview-item-window))
288 ;;(add-text-properties start end (list 'keymap w3-mode-map)))) 288 (save-excursion
289 (if (eq newsticker-html-renderer 'w3m-region) 289 (funcall newsticker-html-renderer start end)))
290 (w3m-toggle-inline-images t)) 290 ;;(cond ((eq newsticker-html-renderer 'w3m-region)
291 t)) 291 ;; (add-text-properties start end (list 'keymap
292 ;; w3m-minor-mode-map)))
293 ;;((eq newsticker-html-renderer 'w3-region)
294 ;;(add-text-properties start end (list 'keymap w3-mode-map))))
295 (if (eq newsticker-html-renderer 'w3m-region)
296 (w3m-toggle-inline-images t))
297 t)))
292 (error 298 (error
293 (message "Error: HTML rendering failed: %s, %s" 299 (message "Error: HTML rendering failed: %s, %s"
294 (car error-data) (cdr error-data)) 300 (car error-data) (cdr error-data))