public void OnAttractedEdge(IAttractable attractable, ManipulateEdges manipulateEdges, AttractedEdge edge, double time) { double offset; if (edge == AttractedEdge.Right) { var duration = end - start; var startTime = time - duration; startTime = EditMode.AdjustStartTime(m_State, m_RightMostMovingItems, startTime); offset = startTime + duration - end; } else { if (edge == AttractedEdge.Left) { time = EditMode.AdjustStartTime(m_State, m_LeftMostMovingItems, time); } offset = time - start; } if (start + offset < 0.0) { offset = -start; } if (!offset.Equals(0.0)) { foreach (var grabbedClips in movingItems) { grabbedClips.start += offset; } EditMode.UpdateMove(); RefreshPreviewItems(); } }