Eli Zaretskii writes: >> Date: Sun, 9 Jul 2023 20:12:38 -0300 >> Cc: 64347@debbugs.gnu.org, stephen.berman@gmx.net >> From: Mauro Aranda >> >> Eli Zaretskii writes: >> >>  > OK, but why does it have to do that on the original value? It could >>  > do that on a copy that serves for the display and editing, in which >>  > case the original value could be left intact if the user didn't change >>  > it or did change, but didn't click Apply.  (If the user does modify >>  > the original value, then any conversions are okay, since the variable >>  > is really "edited".) >> >> I think my description was inaccurate, because it seemed to imply that >> it is a destructive operation.  It is not, it leaves the original value >> intact. >> >> But when deciding to set a state, Custom always consults the spec built >> from the data the face Widget has. > > Can we change this last aspect, so that the state is set using the > original spec if the setting was not changed by the user? OK, here's a patch for doing that.  It seems to me that after creating the widget, the only reason to use the value that's represented in the widget is if we loaded the spec from the :shown-value property (meaning we are redrawing the widget and we want to keep a spec that was already in the widget)