diff options
Diffstat (limited to 'lisp/net/newst-treeview.el')
-rw-r--r-- | lisp/net/newst-treeview.el | 50 |
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." "Render text between markers START and END." (if newsticker-html-renderer (condition-case error-data - (save-excursion - (set-marker-insertion-type end t) - ;; check whether it is necessary to call html renderer - ;; (regexp inspired by htmlr.el) - (goto-char start) - (when (re-search-forward - "</?[A-Za-z1-6]*\\|&#?[A-Za-z0-9]+;" end t) - ;; (message "%s" (newsticker--title item)) - (let ((w3m-fill-column (if newsticker-use-full-width - -1 fill-column)) - (w3-maximum-line-length - (if newsticker-use-full-width nil fill-column))) - (save-excursion - (funcall newsticker-html-renderer start end))) - ;;(cond ((eq newsticker-html-renderer 'w3m-region) - ;; (add-text-properties start end (list 'keymap - ;; w3m-minor-mode-map))) - ;;((eq newsticker-html-renderer 'w3-region) - ;;(add-text-properties start end (list 'keymap w3-mode-map)))) - (if (eq newsticker-html-renderer 'w3m-region) - (w3m-toggle-inline-images t)) - t)) + ;; Need to save selected window in order to prevent mixing + ;; up contents of the item buffer. This happens with shr + ;; which does some smart optimizations that apparently + ;; interfere with our own, maybe not-so-smart, optimizations. + (save-selected-window + (save-excursion + (set-marker-insertion-type end t) + ;; check whether it is necessary to call html renderer + ;; (regexp inspired by htmlr.el) + (goto-char start) + (when (re-search-forward + "</?[A-Za-z1-6]*\\|&#?[A-Za-z0-9]+;" end t) + ;; (message "%s" (newsticker--title item)) + (let ((w3m-fill-column (if newsticker-use-full-width + -1 fill-column)) + (w3-maximum-line-length + (if newsticker-use-full-width nil fill-column))) + (select-window (newsticker--treeview-item-window)) + (save-excursion + (funcall newsticker-html-renderer start end))) + ;;(cond ((eq newsticker-html-renderer 'w3m-region) + ;; (add-text-properties start end (list 'keymap + ;; w3m-minor-mode-map))) + ;;((eq newsticker-html-renderer 'w3-region) + ;;(add-text-properties start end (list 'keymap w3-mode-map)))) + (if (eq newsticker-html-renderer 'w3m-region) + (w3m-toggle-inline-images t)) + t))) (error (message "Error: HTML rendering failed: %s, %s" (car error-data) (cdr error-data)) |