Achievement of the week: MakeVistaDWMHappyDance

This was the function that I added:

 void GUIView::MakeVistaDWMHappyDance()
 {
     // Looks like Vista has some bug in DWM. Whenever we maximize or dock
     // a view, we must do something magic, otherwise
     // white stuff appears in place of the view.
     // See http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4208117&SiteID;=1

     bool earlierThanVista = systeminfo::GetOperatingSystemNumeric() < 600;
     if( earlierThanVista )
         return;

     // What seems to work is drawing one pixel via GDI.
     // We draw it at (1,1) with usual background color.
     int grayColor = 0.61f * 255.0f;
     PAINTSTRUCT ps;
     BeginPaint(m_View, &ps;);
     SetPixel(ps.hdc, 1, 1, RGB(grayColor,grayColor,grayColor));
     EndPaint(m_View, &ps;);
 }

I know. Reading from screen when Aero is on is slow, bad and wrong. But then, what do you do? It’s better than users staring an all-white window just because Vista decided to draw it white, no matter what you think you’re drawing into it.

…still, MakeVistaDWMHappyDance is not nearly as cool as

internal interface ICanHazCustomMenu { ... }

that Nicholas added a while ago.