This is a result of my changes in: commit 85113fcda97970bc2468f409278e27d6570fc76f Author: Mauro Aranda Date: Fri Jan 17 17:12:08 2025 -0300 Prepare markers for insertions inside of a widget Recreating child widgets without recreating the parent widget may lead to situations where the parent widget doesn't cover its children or buttons entirely anymore. This bug manifests as a faulty fontification of children or buttons, for example. (Bug#69941) * lisp/wid-edit.el (widget--prepare-markers-for-inside-insertion) (widget--prepare-markers-for-outside-insertion): New functions. (widget-default-create): Use them. * test/lisp/wid-edit-tests.el (widget-test-insertion-at-parent-markers) (widget-test-insertion-at-parent-markers-2): New tests. But I don't think there's a bug in the wid-edit.el code, rather it's in customize-themes. The layout for a line with a theme is like this: CHECKBOX BUTTON -- THEME-DESCRIPTION BUTTON has the theme name as a label, and it disappears after toggling the checkbox. The code creates BUTTON as a child of CHECKBOX, so the code is asking for BUTTON to be contained inside CHECKBOX. It didn't happen before because of Bug#69941, but I think that what happens now is what should happen. Now, when the checkbox gets recreated, it deletes its child and never creates it back (the cus-theme.el code should be responsible of telling it to create it back in that case). But I don't think BUTTON should be a child of CHECKBOX. In fact, the usual thing to do with the Widget library is to make it a sibling. So I propose the attached patch.