summaryrefslogtreecommitdiff
path: root/lisp/wid-edit.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2007-09-22 11:26:23 +0000
committerRichard M. Stallman <rms@gnu.org>2007-09-22 11:26:23 +0000
commitcc2fba21ba9c85726a8cedaf548f438f82fb38e4 (patch)
tree60f5bdef58522ffe9737f5365b7e8c8a6859797b /lisp/wid-edit.el
parentd2f95fcaf907bcf7c494af208429e061de821eed (diff)
downloademacs-cc2fba21ba9c85726a8cedaf548f438f82fb38e4.tar.gz
(widget-specify-button): Don't merge mouse-face with neighbouring buttons.
Diffstat (limited to 'lisp/wid-edit.el')
-rw-r--r--lisp/wid-edit.el12
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index abb7fb6631e..50df4bd56c6 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -405,7 +405,17 @@ new value.")
(unless (widget-get widget :suppress-face)
(overlay-put overlay 'face (widget-apply widget :button-face-get))
(overlay-put overlay 'mouse-face
- (widget-apply widget :mouse-face-get)))
+ ;; Make new list structure for the mouse-face value
+ ;; so that different widgets will have
+ ;; different `mouse-face' property values
+ ;; and will highlight separately.
+ (let ((mouse-face-value
+ (widget-apply widget :mouse-face-get)))
+ ;; If it's a list, copy it.
+ (if (listp mouse-face-value)
+ (copy-sequence mouse-face-value)
+ ;; If it's a symbol, put it in a list.
+ (list mouse-face-value)))))
(overlay-put overlay 'pointer 'hand)
(overlay-put overlay 'follow-link follow-link)
(overlay-put overlay 'help-echo help-echo)))