private Arrow shouldSplitArrow(PointF point, ref int segmentToSplit) { if (!fc.AllowSplitArrows) { return(null); } Arrow arrow = fc.GetArrowAt(point, Constants.getLineHitTest(fc.MeasureUnit) / 2, true, ref segmentToSplit); if (arrow != null && (arrow == fc.ActiveObject || arrow == fc.getAutoHObj())) { if (!arrow.pointInHandle(point) && arrow.Style != ArrowStyle.Bezier) { return(arrow); } int handle = -1; segmentToSplit = 0; if (arrow.Style == ArrowStyle.Cascading && arrow.SegmentCount == 2 && arrow.HitTestHandle(point, ref handle) && handle == 1) { return(arrow); } } return(null); }