public DropInfo DragOver(EditorWindow w, Vector2 mouseScreenPosition)
{
for (int i = 0; i < base.children.Length; i++)
{
View view = base.children[i];
if ((view != DockArea.s_IgnoreDockingForView) && !(view is SplitView))
{
ViewEdge none = ViewEdge.None;
Rect screenPosition = view.screenPosition;
Rect rect = this.RectFromEdge(screenPosition, ViewEdge.Bottom, screenPosition.height - 39f, 0f);
float thickness = Mathf.Min(Mathf.Round(rect.width / 3f), 300f);
float num3 = Mathf.Min(Mathf.Round(rect.height / 3f), 300f);
Rect rect3 = this.RectFromEdge(rect, ViewEdge.Left, thickness, 0f);
Rect rect4 = this.RectFromEdge(rect, ViewEdge.Right, thickness, 0f);
Rect rect5 = this.RectFromEdge(rect, ViewEdge.Bottom, num3, 0f);
Rect rect6 = this.RectFromEdge(rect, ViewEdge.Top, num3, 0f);
if (rect3.Contains(mouseScreenPosition))
{
none |= ViewEdge.Left;
}
if (rect4.Contains(mouseScreenPosition))
{
none |= ViewEdge.Right;
}
if (rect5.Contains(mouseScreenPosition))
{
none |= ViewEdge.Bottom;
}
if (rect6.Contains(mouseScreenPosition))
{
none |= ViewEdge.Top;
}
Vector2 zero = Vector2.zero;
Vector2 vector2 = Vector2.zero;
ViewEdge bottom = none;
ViewEdge left = none;
switch (none)
{
case ViewEdge.BottomLeft:
bottom = ViewEdge.Bottom;
left = ViewEdge.Left;
zero = new Vector2(rect.x, rect.yMax) - mouseScreenPosition;
vector2 = new Vector2(-thickness, num3);
break;
case ViewEdge.Before:
bottom = ViewEdge.Left;
left = ViewEdge.Top;
zero = new Vector2(rect.x, rect.y) - mouseScreenPosition;
vector2 = new Vector2(-thickness, -num3);
break;
case ViewEdge.After:
bottom = ViewEdge.Right;
left = ViewEdge.Bottom;
zero = new Vector2(rect.xMax, rect.yMax) - mouseScreenPosition;
vector2 = new Vector2(thickness, num3);
break;
case ViewEdge.TopRight:
bottom = ViewEdge.Top;
left = ViewEdge.Right;
zero = new Vector2(rect.xMax, rect.y) - mouseScreenPosition;
vector2 = new Vector2(thickness, -num3);
break;
}
none = (((zero.x * vector2.y) - (zero.y * vector2.x)) >= 0f) ? left : bottom;
if (none != ViewEdge.None)
{
float num4 = Mathf.Max(Mathf.Round((((none & ViewEdge.FitsHorizontal) == ViewEdge.None) ? screenPosition.height : screenPosition.width) / 3f), 100f);
return new DropInfo(this) {
userData = new ExtraDropInfo(false, none, i),
type = DropInfo.Type.Pane,
rect = this.RectFromEdge(screenPosition, none, num4, 0f)
};
}
}
}
if (base.screenPosition.Contains(mouseScreenPosition) && !(base.parent is SplitView))
{
return new DropInfo(null);
}
return null;
}