reactos/subsys/win32k/include
diff -u -r1.15 -r1.15.2.1
--- dce.h 12 Dec 2004 01:40:37 -0000 1.15
+++ dce.h 27 Dec 2004 00:39:01 -0000 1.15.2.1
@@ -53,6 +53,6 @@
PDCE FASTCALL DceFreeDCE(PDCE dce, BOOLEAN Force);
void FASTCALL DceFreeWindowDCE(PWINDOW_OBJECT Window);
void FASTCALL DceEmptyCache(void);
-VOID FASTCALL DceResetActiveDCEs(PWINDOW_OBJECT Window, int DeltaX, int DeltaY);
+VOID FASTCALL DceResetActiveDCEs(PWINDOW_OBJECT Window);
#endif /* _WIN32K_DCE_H */
reactos/subsys/win32k/ntuser
diff -u -r1.70 -r1.70.2.1
--- windc.c 17 Dec 2004 19:42:46 -0000 1.70
+++ windc.c 27 Dec 2004 00:39:02 -0000 1.70.2.1
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: windc.c,v 1.70 2004/12/17 19:42:46 navaraf Exp $
+/* $Id: windc.c,v 1.70.2.1 2004/12/27 00:39:02 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -770,11 +770,13 @@
}
VOID FASTCALL
-DceResetActiveDCEs(PWINDOW_OBJECT Window, int DeltaX, int DeltaY)
+DceResetActiveDCEs(PWINDOW_OBJECT Window)
{
DCE *pDCE;
PDC dc;
PWINDOW_OBJECT CurrentWindow;
+ INT DeltaX;
+ INT DeltaY;
if (NULL == Window)
{
@@ -801,16 +803,10 @@
continue;
}
}
- if (!GDIOBJ_OwnedByCurrentProcess(pDCE->hDC))
- {
- /* skip DCs we don't even own */
- goto skip;
- }
dc = DC_LockDc(pDCE->hDC);
if (dc == NULL)
{
-skip:
if (Window->Self != pDCE->hwndCurrent)
{
IntReleaseWindowObject(CurrentWindow);
@@ -818,11 +814,22 @@
pDCE = pDCE->next;
continue;
}
- if ((0 != DeltaX || 0 != DeltaY)
- && (Window == CurrentWindow || IntIsChildWindow(Window->Self, CurrentWindow->Self)))
+ if (Window == CurrentWindow || IntIsChildWindow(Window->Self, CurrentWindow->Self))
{
- dc->w.DCOrgX += DeltaX;
- dc->w.DCOrgY += DeltaY;
+ if (pDCE->DCXFlags & DCX_WINDOW)
+ {
+ DeltaX = CurrentWindow->WindowRect.left - dc->w.DCOrgX;
+ DeltaY = CurrentWindow->WindowRect.top - dc->w.DCOrgY;
+ dc->w.DCOrgX = CurrentWindow->WindowRect.left;
+ dc->w.DCOrgY = CurrentWindow->WindowRect.top;
+ }
+ else
+ {
+ DeltaX = CurrentWindow->ClientRect.left - dc->w.DCOrgX;
+ DeltaY = CurrentWindow->ClientRect.top - dc->w.DCOrgY;
+ dc->w.DCOrgX = CurrentWindow->ClientRect.left;
+ dc->w.DCOrgY = CurrentWindow->ClientRect.top;
+ }
if (NULL != dc->w.hClipRgn)
{
NtGdiOffsetRgn(dc->w.hClipRgn, DeltaX, DeltaY);
reactos/subsys/win32k/ntuser
diff -u -r1.127 -r1.127.2.1
--- winpos.c 12 Dec 2004 23:08:12 -0000 1.127
+++ winpos.c 27 Dec 2004 00:39:02 -0000 1.127.2.1
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: winpos.c,v 1.127 2004/12/12 23:08:12 navaraf Exp $
+/* $Id: winpos.c,v 1.127.2.1 2004/12/27 00:39:02 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -977,9 +977,7 @@
Window->Style |= WS_VISIBLE;
}
- DceResetActiveDCEs(Window,
- NewWindowRect.left - OldWindowRect.left,
- NewWindowRect.top - OldWindowRect.top);
+ DceResetActiveDCEs(Window);
if (!(WinPos.flags & SWP_NOREDRAW))
{