undo method

void undo()

Implementation

void undo() {
  if (strokesNotifier.value.isNotEmpty) {
    // Undo the last stroke.
    final lastStroke = strokesNotifier.removeLastStroke();
    _redoStackInternal.add(lastStroke); // Save it for redo.
    _strokeCount = strokesNotifier.strokesCount;
    _updateCanRedo();
    _updateCanUndo();
    currentStrokeNotifier.value = null;
  } else if (_undoStackInternal.isNotEmpty) {
    // Restore the last cleared state from the undo stack.
    strokesNotifier.value = _undoStackInternal.removeLast();
    _strokeCount = strokesNotifier.strokesCount;
    _updateCanRedo();
    _updateCanUndo();
  }
}