update method
Show/update the UI for state (waiting — scrim without a hole, active —
hole + tooltip); on HintIdle — remove the overlay.
Implementation
@override
void update(HintState state) {
if (_disposed) return;
_pendingState = state;
if (state.isIdle) {
_removeEntry();
return;
}
final overlay = _overlay ?? _captureOverlay();
if (overlay == null) {
// Neither an explicit OverlayState nor a mounted target to capture
// from: nowhere to draw — say so honestly (otherwise "why isn't it
// visible" stays silent).
_reportOverlayUnavailable();
return;
}
_overlay = overlay;
if (_entry == null) {
_entry = _createEntry(overlay);
overlay.insert(_entry!);
} else {
_entry!.markNeedsBuild();
}
}