Borodar.ReorderableList.ReorderableListControl.AutoScrollTowardsMouse C# (CSharp) Метод

AutoScrollTowardsMouse() приватный Метод

private AutoScrollTowardsMouse ( ) : void
Результат void
        private void AutoScrollTowardsMouse()
        {
            const float triggerPaddingInPixels = 8f;
            const float maximumRangeInPixels = 4f;

            Rect visiblePosition = GUIHelper.VisibleRect();
            Vector2 mousePosition = Event.current.mousePosition;
            Rect mouseRect = new Rect(mousePosition.x - triggerPaddingInPixels, mousePosition.y - triggerPaddingInPixels, triggerPaddingInPixels * 2, triggerPaddingInPixels * 2);

            if (!ContainsRect(visiblePosition, mouseRect)) {
                if (mousePosition.y < visiblePosition.center.y)
                    mousePosition = new Vector2(mouseRect.xMin, mouseRect.yMin);
                else
                    mousePosition = new Vector2(mouseRect.xMax, mouseRect.yMax);

                mousePosition.x = Mathf.Max(mousePosition.x - maximumRangeInPixels, mouseRect.xMax);
                mousePosition.y = Mathf.Min(mousePosition.y + maximumRangeInPixels, mouseRect.yMax);
                GUI.ScrollTo(new Rect(mousePosition.x, mousePosition.y, 1, 1));

                s_SimulateMouseDragControlID = _controlID;

                var focusedWindow = EditorWindow.focusedWindow;
                if (focusedWindow != null)
                    focusedWindow.Repaint();
            }
        }