diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 1d47f80b0dd..fd1747d3562 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -460,17 +460,20 @@ widget-specify-button "Specify button for WIDGET between FROM and TO." (let ((overlay (make-overlay from to nil t nil)) (follow-link (widget-get widget :follow-link)) - (help-echo (widget-get widget :help-echo))) + (help-echo (widget-get widget :help-echo)) + (face (unless (widget-get widget :suppress-face) + (widget-apply widget :button-face-get)))) (widget-put widget :button-overlay overlay) (when (functionp help-echo) (setq help-echo 'widget-mouse-help)) - (overlay-put overlay 'before-string #(" " 0 1 (invisible t))) + (overlay-put overlay 'before-string + (propertize " " 'invisible t 'face face)) (overlay-put overlay 'button widget) (overlay-put overlay 'keymap (widget-get widget :keymap)) (overlay-put overlay 'evaporate t) ;; We want to avoid the face with image buttons. - (unless (widget-get widget :suppress-face) - (overlay-put overlay 'face (widget-apply widget :button-face-get)) + (when face + (overlay-put overlay 'face face) (overlay-put overlay 'mouse-face ;; Make new list structure for the mouse-face value ;; so that different widgets will have