detach method

  1. @override
Future<void> detach()
override

Implementation

@override
Future<void> detach() async {
  final viewPortWasActive = viewport.isActive;
  super.detach();
  for (final subscription in _subscriptions) {
    await subscription.cancel();
  }
  _subscriptions.clear();
  _inputProcessor.stopListening();
  _sizeTracker.stopTracking();
  // TODO: perhaps clear alternative buffer?
  if (viewPortWasActive) {
    _controller
      ..changeScreenMode(alternateBuffer: false)
      ..changeCursorVisibility(hiding: false)
      ..changeCursorBlinking(blinking: true);
  }
  _controller
    ..setInputMode(false)
    ..changeFocusTrackingMode(enable: false)
    ..changeMouseTrackingMode(enable: false)
    ..changeLineWrappingMode(enable: true);
}