public override void MouseUp(ViewportBase viewport, ViewportEvent e) { base.MouseUp(viewport, e); if (_currentTool == null) { return; } _currentTool.MouseUp(viewport, e); if (!(viewport is Viewport2D)) { return; } if (_currentTool.NoSelection()) { return; } if (!e.Handled) { if (MoveSelection != null && !KeyboardState.Ctrl) { // If we were clicking on a point, and the mouse hasn't moved yet, // and ctrl is not down, deselect the other points. Points.ForEach(x => x.IsSelected = false); MoveSelection.ForEach(x => x.IsSelected = true); VertexSelectionChanged(); _currentTool.MouseClick(viewport, e); } else { _currentTool.DragEnd(); } } RefreshMidpoints(); _snapPointOffset = null; _movingPoint = null; MoveSelection = null; }