My guess was just to switch the order of both the Cairo surface and SDL surface but no luck ;/
if(ZOrderSwitch == false)
{
cout << " Z Order Set to False" << endl;
ChocoFrontStorageRect = ChocoFrontRect;
cairo_paint(Fences);
cairo_surface_flush(FenceSurf);
SDL_BlitSurface(CGTextSurf,NULL,Screen,&CrazyRect);
SDL_BlitSurface(ChocoFrontSurf[ChocoFrontFrameTimer],NULL,Screen,&ChocoFrontStorageRect);
cairo_surface_mark_dirty(FenceSurf);
}
else
{
cout << "Z Order Set to True" << endl;
ChocoFrontStorageRect = ChocoFrontRect;
cairo_surface_flush(FenceSurf);
SDL_BlitSurface(CGTextSurf,NULL,Screen,&CrazyRect);
SDL_BlitSurface(ChocoFrontSurf[ChocoFrontFrameTimer],NULL,Screen,&ChocoFrontStorageRect);
cairo_surface_mark_dirty(FenceSurf);
cairo_paint(Fences);
}
if(FenceRect.x <= 40)
{
ZOrderSwitch = true;
}