summaryrefslogtreecommitdiff
path: root/lisp/wid-edit.el
diff options
context:
space:
mode:
authorBasil L. Contovounesios <contovob@tcd.ie>2019-04-07 03:36:47 +0100
committerBasil L. Contovounesios <contovob@tcd.ie>2019-04-07 03:56:27 +0100
commit08235af38c92e95d8ec9d268916d8910ea50ab2d (patch)
treed065cbd0fcb339ddf2f2fd0b809400a54deb99ef /lisp/wid-edit.el
parent43f4c7ddd2077b2e786d069bbb9e2de32f23ffb2 (diff)
downloademacs-08235af38c92e95d8ec9d268916d8910ea50ab2d.tar.gz
Distinguish buttons from widgets (bug#34506)
* lisp/button.el (button-at): * lisp/wid-edit.el (widget-at): Avoid returning a false positive when looking for a button and finding a widget, or vice versa. * test/lisp/button-tests.el: * test/lisp/wid-edit-tests.el: New files.
Diffstat (limited to 'lisp/wid-edit.el')
-rw-r--r--lisp/wid-edit.el5
1 files changed, 3 insertions, 2 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 52c0b5b74d2..b9f98cdc4c7 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1163,8 +1163,9 @@ When not inside a field, signal an error."
(defun widget-at (&optional pos)
"The button or field at POS (default, point)."
- (or (get-char-property (or pos (point)) 'button)
- (widget-field-at pos)))
+ (let ((widget (or (get-char-property (or pos (point)) 'button)
+ (widget-field-at pos))))
+ (and (widgetp widget) widget)))
;;;###autoload
(defun widget-setup ()