[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