/// <summary>
        /// Not yet documented.
        /// </summary>
        public static DragHandle BeginDragHandle(object key, object obj, bool isVirtualDragHandle, DragAndDropMethods defaultMethod = DragAndDropMethods.Move)
        {
            Update();
            var rect = GUIHelper.BeginLayoutMeasuring();

            var dragHandle = GUIHelper.GetTemporaryContext <DragHandle>(draggableKey, key).Value;

            dragHandle.Object            = obj;
            dragHandle.DragAndDropMethod = defaultMethod;
            dragHandle.LayoutDepth       = dragHandles.Count;
            dragHandles.Push(dragHandle);

            if (Event.current.type == EventType.Repaint && dragHandle.IsDragging == false)
            {
                dragHandle.TempRect = rect;
            }

            dragHandle.SourceWindow = GUIHelper.CurrentWindow;
            return(dragHandle);
        }
 /// <summary>
 /// Not yet documented.
 /// </summary>
 public static DragHandle BeginDragHandle(object key, object obj, DragAndDropMethods defaultMethod = DragAndDropMethods.Move)
 {
     return(BeginDragHandle(key, obj, false, defaultMethod));
 }