Patch by Rafał Harabień :
- Create a new region covering the full desktop in UserRedrawDesktop instead of using Window->hrgnUpdate. Fixes "IntGdiCombineRgn requires hSrc2  != NULL" messages and redrawing issues on mode change.
See issue #5949 for more details.

svn path=/trunk/; revision=50881
This commit is contained in:
Timo Kreuzer 2011-02-23 19:10:42 +00:00
parent b0e397de26
commit ab7f1c1255
2 changed files with 8 additions and 4 deletions

View file

@ -616,15 +616,19 @@ VOID APIENTRY
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);
}

View file

@ -307,9 +307,9 @@ co_IntPaintWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
/*
* IntInvalidateWindows
*
* Internal function used by IntRedrawWindow.
* Internal function used by IntRedrawWindow, UserRedrawDesktop,
* co_WinPosSetWindowPos, IntValidateParent, co_UserRedrawWindow.
*/
VOID FASTCALL
IntInvalidateWindows(PWND Wnd, HRGN hRgn, ULONG Flags)
{