diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index dc481d4d0a5..9304002ff52 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1757,8 +1757,16 @@ widget-default-create (goto-char value-pos) (widget-apply widget :value-create))) (let ((from (point-min-marker)) - (to (point-max-marker))) - (set-marker-insertion-type from t) + (to (point-max-marker)) + ;; Advancing the `:from' marker of a checklist or + ;; radio-button-choice widget on selecting a checkbox or a + ;; radio-button, which inserts "[X]" or "(*)", can result in + ;; misfontifying the first checkbox (bug#69941). To ensure + ;; correct fontification, assign `:from' the marker insertion + ;; type `nil', so it does not advance. + (from-mit (not (memq (widget-type widget) + '(checklist radio-button-choice))))) + (set-marker-insertion-type from from-mit) (set-marker-insertion-type to nil) (widget-put widget :from from) (widget-put widget :to to)))