[ros-diffs] [fireball] 44246: - 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.

fireball at svn.reactos.org fireball at svn.reactos.org
Fri Nov 20 22:36:48 CET 2009


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.drv/gdidrv.c?rev=44246&r1=44245&r2=44246&view=diff
==============================================================================
--- 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);
 




More information about the Ros-diffs mailing list