Index: dll/win32/user32/windows/menu.c =================================================================== --- dll/win32/user32/windows/menu.c (revision 50872) +++ dll/win32/user32/windows/menu.c (working copy) @@ -4068,13 +4068,9 @@ MenuGetRosMenuInfo(&MenuInfo, hMenu); MenuInfo.Height = 0; // make sure to recalc size MenuSetRosMenuInfo(&MenuInfo); - /* The wine method doesn't work and I suspect it's more effort - then hackfix solution + SetWindowPos( hWnd, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_FRAMECHANGED ); - return TRUE;*/ - // FIXME: hackfix - DefWndNCPaint(hWnd,(HRGN)-1,-1); return TRUE; } Index: subsystems/win32/win32k/ntuser/desktop.c =================================================================== --- subsystems/win32/win32k/ntuser/desktop.c (revision 50872) +++ subsystems/win32/win32k/ntuser/desktop.c (working copy) @@ -616,15 +616,19 @@ UserRedrawDesktop() { PWND Window = NULL; - + HRGN hRgn; + Window = UserGetDesktopWindow(); + hRgn = IntSysCreateRectRgnIndirect(&Window->rcWindow); IntInvalidateWindows( Window, - Window->hrgnUpdate, + hRgn, RDW_FRAME | RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); + + REGION_FreeRgnByHandle(hRgn); } Index: subsystems/win32/win32k/ntuser/painting.c =================================================================== --- subsystems/win32/win32k/ntuser/painting.c (revision 50872) +++ subsystems/win32/win32k/ntuser/painting.c (working copy) @@ -307,7 +307,7 @@ /* * IntInvalidateWindows * - * Internal function used by IntRedrawWindow. + * Internal function used by IntRedrawWindow, UserRedrawDesktop, co_WinPosSetWindowPos, IntValidateParent, co_UserRedrawWindow. */ VOID FASTCALL