void AdjustNewSplinePoint(Window callingWindow)
        {
            SplinePoint newSplinePoint = mListDisplayWindow.LastItemAdded as SplinePoint;

            if (SelectedObject.Count > 1)
            {
                // Remove the new point out because we're not sure what the sorting has done.
                // We'll add it back in after giving it its time.
                SelectedObject.Remove(newSplinePoint);

                SplinePoint pointBefore = SelectedObject[SelectedObject.Count - 1];

                newSplinePoint.Time = pointBefore.Time + 1;

                if (SelectedObject.Count == 1)
                {
                    newSplinePoint.Position    = pointBefore.Position;
                    newSplinePoint.Position.X += 25 / SpriteManager.Camera.PixelsPerUnitAt(newSplinePoint.Position.Z);
                }
                else
                {
                    SplinePoint pointBeforePointBefore = SelectedObject[SelectedObject.Count - 2];

                    Vector3 difference = pointBefore.Position - pointBeforePointBefore.Position;

                    if (difference == Vector3.Zero)
                    {
                        newSplinePoint.Position    = pointBefore.Position;
                        newSplinePoint.Position.X += 1;
                    }
                    else
                    {
                        newSplinePoint.Position = pointBefore.Position + difference;
                    }
                }

                SelectedObject.Add(newSplinePoint);
            }
            else
            {
                newSplinePoint.Position.X = SpriteManager.Camera.X;
                newSplinePoint.Position.Y = SpriteManager.Camera.Y;
            }

            if (AfterNewPointAdded != null)
            {
                AfterNewPointAdded(this);
            }
        }