Payload of the uivaluechange event — a control's number changed
(2026-08-07, A-12).
A separate event from uistatechange because the two carry different things
and a listener wants exactly one of them: uistatechange reports transitions
of the four §75 flags and carries two WidgetStateSnapshots, and a
slider dragged across its track changes none of them. Folding a number into
that snapshot would also make the base class's "nothing changed, emit
nothing" comparison lie for every widget that has no value.
previous and current are always different — a control that resolves an
assignment to the value it already held emits nothing.
Payload of the
uivaluechangeevent — a control's number changed (2026-08-07, A-12).A separate event from
uistatechangebecause the two carry different things and a listener wants exactly one of them:uistatechangereports transitions of the four §75 flags and carries two WidgetStateSnapshots, and a slider dragged across its track changes none of them. Folding a number into that snapshot would also make the base class's "nothing changed, emit nothing" comparison lie for every widget that has no value.previousandcurrentare always different — a control that resolves an assignment to the value it already held emits nothing.