private static bool _canPaste(Event sourceEvent, Event destEvent, TPasteLocation location, ClipboardOperation operation)
 {
     if (sourceEvent.Engine != destEvent.Engine)
         return false;
     if (location == TPasteLocation.Under)
     {
         if (destEvent.EventType == TEventType.StillImage)
             return false;
         if ((destEvent.EventType == TEventType.Movie || destEvent.EventType == TEventType.Live) && !(sourceEvent.EventType == TEventType.StillImage || sourceEvent.EventType == TEventType.AnimationFlash))
             return false;
         if (destEvent.EventType == TEventType.Rundown && (sourceEvent.EventType == TEventType.StillImage || sourceEvent.EventType == TEventType.AnimationFlash || destEvent.SubEvents.Count > 0))
             return false;
         if (destEvent.EventType == TEventType.Container && sourceEvent.EventType != TEventType.Rundown)
             return false;
     }
     if (location == TPasteLocation.After || location == TPasteLocation.Before)
     {
         if (!(sourceEvent.EventType == TEventType.Rundown
            || sourceEvent.EventType == TEventType.Movie
            || sourceEvent.EventType == TEventType.Live)
         ||
             !(destEvent.EventType == TEventType.Rundown
            || destEvent.EventType == TEventType.Movie
            || destEvent.EventType == TEventType.Live)
            )
             return false;
     }
     if (destEvent.IsContainedIn(sourceEvent))
     {
         if (sourceEvent == destEvent && location != TPasteLocation.Under && operation == ClipboardOperation.Copy)
             return true;
         return false;
     }
     return true;
 }