Mercurial > emacs
diff lisp/wid-edit.el @ 85114:5039706521c9
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-875
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 09 Oct 2007 08:52:57 +0000 |
parents | e5a68f18fcb9 a577ac572c4b |
children | 38f922ac20ce 14c4a6aac623 |
line wrap: on
line diff
--- a/lisp/wid-edit.el Tue Oct 09 08:44:02 2007 +0000 +++ b/lisp/wid-edit.el Tue Oct 09 08:52:57 2007 +0000 @@ -405,7 +405,17 @@ (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))) @@ -656,7 +666,9 @@ (progn (widget-put widget :suppress-face t) (insert-image image (propertize - tag 'mouse-face widget-button-pressed-face))) + ;; Use a `list' so it's unique and won't get + ;; accidentally merged with neighbouring images. + tag 'mouse-face (list widget-button-pressed-face)))) (insert tag))) (defun widget-move-and-invoke (event)