// Disenagaging public override void OnDisengage() { base.OnDisengage(); DisableAutoPanning(); // When not cancelled if (!cancelled) { Cursor.Current = Cursors.AppStarting; // Move geometry back to original position MoveGeometryRelative(new Vector2D(0f, 0f), false, false); // Resume normal undo/redo recording General.Map.UndoRedo.IgnorePropChanges = false; // Make undo for the dragging General.Map.UndoRedo.CreateUndo("Drag geometry"); // Move selected geometry to final position MoveGeometryRelative(mousemappos - dragstartmappos, snaptogrid, snaptonearest); // Stitch geometry if (snaptonearest) { General.Map.Map.StitchGeometry(); } // Make corrections for backward linedefs MapSet.FlipBackwardLinedefs(General.Map.Map.Linedefs); // Snap to map format accuracy //General.Map.Map.SnapAllToAccuracy(); // Update cached values General.Map.Map.Update(); // Done Cursor.Current = Cursors.Default; General.Map.IsChanged = true; } }