Still very interested in this, and still have not heard either way what happens with other people in regard to this issue. Anyone have a comment?
I was poking around in the source and possibly have a lead.
window::create()
calls
1) WindowImpl::create which makes a new WindowImplType which is a WindowImplWin32 which calls CreateWindowA() then calls then calls switchToFullscreen() which calls ShowWindow(m_handle, SW_SHOW);
2) GlContext::create which calls:
2A) ensureContext(); calls getInternalContext() calls sf::priv::GlContext::create() calls GlContext* context = new ContextType(sharedContext); which is a WglContext that calls CreateWindowA() then ShowWindow(m_window, SW_HIDE);
2B) GlContext* context = new ContextType(sharedContext, settings, width, height); which calls CreateWindowA() then ShowWindow(m_window, SW_HIDE);
3) window::initialize() which calls setVisible(true); which calls ShowWindow(m_handle, SW_SHOW);
So it looks to me like the important part is the:
SW_SHOW
SW_HIDE
SW_SHOW
that is possibly called every time a fullscreen window is created? I may be way off the mark but this is the best I could find so far. Not sure what the best solution is, but personally I would rather have a window not show at all unless I told it to as part of my initialization instead of the switchToFullScreen and window::create automatically showing.