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/winen…
==============================================================================
--- 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);