From 7c1ea6e40433e6c1ff4273ba58e87e9b5f152cc5 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Tue, 11 Jun 2013 18:09:32 +0200 Subject: [PATCH] * eww.el (eww-convert-widgets): Make widgets from non-tabular layouts work, too. --- lisp/ChangeLog | 5 +++++ lisp/eww.el | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 29f678c51..cafd18a94 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-06-11 Lars Magne Ingebrigtsen + + * eww.el (eww-convert-widgets): Make widgets from non-tabular layouts + work, too. + 2013-06-10 Albert Krewinkel * sieve-manage.el (sieve-manage-open): work with STARTTLS: shorten diff --git a/lisp/eww.el b/lisp/eww.el index cf3f62be3..7f48fce96 100644 --- a/lisp/eww.el +++ b/lisp/eww.el @@ -223,7 +223,8 @@ (when shr-final-table-render (nconc eww-form (list widget))) (apply 'widget-create widget)) - (put-text-property start (point) 'eww-widget widget))) + (put-text-property start (point) 'eww-widget widget) + (insert " "))) (defun eww-click-radio (widget &rest ignore) (let ((form (plist-get (cdr widget) :eww-form)) @@ -300,12 +301,17 @@ (defun eww-convert-widgets () (let ((start (point-min)) widget) + ;; Some widgets come from different buffers (rendered for tables), + ;; so we need to nix out the list of widgets and recreate them. + (setq widget-field-list nil + widget-field-new nil) (while (setq start (next-single-property-change start 'eww-widget)) (setq widget (get-text-property start 'eww-widget)) (goto-char start) (let ((end (next-single-property-change start 'eww-widget))) (dolist (overlay (overlays-in start end)) - (when (plist-get (overlay-properties overlay) 'button) + (when (or (plist-get (overlay-properties overlay) 'button) + (plist-get (overlay-properties overlay) 'field)) (delete-overlay overlay))) (delete-region start end)) (apply 'widget-create widget)) -- 2.34.1