private bool IsDraggableFrom( Vector2 mousePosition ) { // Check if there's another Window that has a higher draw order in front of this one. int windowIndex = Game.WindowManager.GetWindowIndex( this ); int drawOrderIndex = Game.WindowManager.DrawOrder.IndexOf( windowIndex ); for( int i = drawOrderIndex; i < Game.WindowManager.DrawOrder.Count; i++ ) { int WindowsIndex = Game.WindowManager.DrawOrder[ i ]; Window windowRef = Game.WindowManager.WindowPool[ WindowsIndex ]; if( mousePosition.X > windowRef.Position.X && mousePosition.Y > windowRef.Position.Y && mousePosition.X < windowRef.Position.X + windowRef.Frame.Width && mousePosition.Y < windowRef.Position.Y + windowRef.Frame.Height ) { return false; } } return ( mousePosition.X > Position.X && mousePosition.Y > Position.Y && mousePosition.X < Position.X + Frame.Width && mousePosition.Y < Position.Y + CaptionDimensions.Height ); }