moveSelectedBy method

bool moveSelectedBy(
  1. double dx,
  2. double dy
)

Moves the selected object by dx, dy.

Implementation

bool moveSelectedBy(double dx, double dy) {
  if (_selectedObjectIds.isEmpty) return false;
  _remember();
  final changed = <CanvasObject>[];
  for (final id in _selectedObjectIds) {
    final index = _objects.indexWhere((object) => object.id == id);
    if (index < 0) continue;
    if (_objects[index].locked) continue;
    final moved = _constrainObject(
      _objects[index],
      _moveObject(_objects[index], dx, dy),
      moving: true,
    );
    _objects[index] = moved;
    changed.add(moved);
  }
  if (changed.isEmpty) return false;
  _snapSelectionIfNeeded();
  changed
    ..clear()
    ..addAll(selectedObjects);
  render();
  onMove?.call(List.unmodifiable(changed));
  _emitChange();
  return true;
}