unhover method

Future<void> unhover({
  1. Duration? hold,
  2. Shot? shot,
  3. Settle? settle,
})

Takes the mouse off the screen, so everything it was over gets its exit.

Held like hover, because an exit runs on a timer too — a Tooltip dismisses on one — and an unhover that only settled would capture the tooltip still up. With no mouse on the screen it moves nothing and takes no automatic shot: that is already the state it was asked for. The step names what the mouse was parked over, so the flow reads unhover "Save".

Implementation

Future<void> unhover({Duration? hold, Shot? shot, Settle? settle}) => _step(
  shot,
  settle,
  () async {
    if (_mouse.at == null) return;
    await _mouse.leave();
    await _elapse(hold ?? _hoverHold);
  },
  verb: 'unhover',
  target: _mouse.hovering,
  autoShotNeedsChange: true,
);