Author: fireball Date: Fri Nov 20 22:36:47 2009 New Revision: 44246
URL: http://svn.reactos.org/svn/reactos?rev=44246&view=rev Log: - GetDC(): Always clip the root window, instead of trying to attach a non-existing in SWM child window. Fixes visual glitches when browsing through menus.
Modified: branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c
Modified: branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent... ============================================================================== --- branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] Fri Nov 20 22:36:47 2009 @@ -216,6 +216,8 @@ INT CDECL RosDrv_ExtEscape( NTDRV_PDEVICE *physDev, INT escape, INT in_count, LPCVOID in_data, INT out_count, LPVOID out_data ) { + HWND hwnd; + switch(escape) { case NTDRV_ESCAPE: @@ -227,10 +229,13 @@ if (in_count >= sizeof(struct ntdrv_escape_set_drawable)) { const struct ntdrv_escape_set_drawable *data = in_data; + RosGdiSetDcRects(physDev->hKernelDC, (RECT*)&data->dc_rect, (RECT*)&data->drawable_rect);
+ hwnd = GetAncestor(data->hwnd, GA_ROOT); + if (!data->release) - RosGdiGetDC(physDev->hKernelDC, data->hwnd, data->clip_children); + RosGdiGetDC(physDev->hKernelDC, hwnd, data->clip_children); else RosGdiReleaseDC(physDev->hKernelDC);