Updates the overlay after the selection has changed.
If this method is called while the SchedulerBinding.schedulerPhase is
SchedulerBinding.persistentCallbacks, i.e. during the build, layout, or
paint phases (see WidgetsBinding.beginFrame), then the update is delayed
until the post-frame callbacks phase. Otherwise the update is done
synchronously. This means that it is safe to call during builds, but also
that if you do call this during a build, the UI will not update until the
next frame (i.e. many milliseconds later).
Source
void update(InputValue newInput) {
if (_input == newInput)
return;
_input = newInput;
if (SchedulerBinding.instance.schedulerPhase == SchedulerPhase.persistentCallbacks) {
SchedulerBinding.instance.addPostFrameCallback(_markNeedsBuild);
} else {
_markNeedsBuild();
}
}