diff --git a/reactos/subsys/win32k/include/painting.h b/reactos/subsys/win32k/include/painting.h index 72a75641a3f..217efadcc92 100644 --- a/reactos/subsys/win32k/include/painting.h +++ b/reactos/subsys/win32k/include/painting.h @@ -9,6 +9,8 @@ VOID FASTCALL IntValidateParent(PWINDOW_OBJECT Child, HRGN ValidRegion); +VOID FASTCALL +IntValidateSiblings(PWINDOW_OBJECT Child, HRGN ValidRegion); BOOL FASTCALL IntRedrawWindow(PWINDOW_OBJECT Wnd, const RECT* UpdateRect, HRGN UpdateRgn, ULONG Flags); BOOL FASTCALL diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 8341227dd90..ef7eeb287e5 100644 --- a/reactos/subsys/win32k/ntuser/painting.c +++ b/reactos/subsys/win32k/ntuser/painting.c @@ -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: painting.c,v 1.62 2004/01/17 15:18:25 navaraf Exp $ + * $Id: painting.c,v 1.63 2004/01/18 08:29:31 navaraf Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -270,8 +270,7 @@ IntPaintWindows(PWINDOW_OBJECT Window, ULONG Flags) */ VOID FASTCALL -IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags, - BOOL ValidateParent) +IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags) { INT RgnType; BOOL HadPaintMessage, HadNCPaintMessage; @@ -364,15 +363,6 @@ IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags, Window->Flags &= ~WINDOWOBJECT_NEED_INTERNALPAINT; } - /* - * Validate parent covered by region - */ - - if (ValidateParent) - { - IntValidateParent(Window, Window->UpdateRegion); - } - /* * Split the nonclient update region. */ @@ -418,7 +408,7 @@ IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags, NtGdiOffsetRgn(hRgnTemp, Window->WindowRect.left - Child->WindowRect.left, Window->WindowRect.top - Child->WindowRect.top); - IntInvalidateWindows(Child, hRgnTemp, Flags, FALSE); + IntInvalidateWindows(Child, hRgnTemp, Flags); NtGdiDeleteObject(hRgnTemp); } IntReleaseWindowObject(Child); @@ -546,13 +536,7 @@ IntRedrawWindow(PWINDOW_OBJECT Window, const RECT* UpdateRect, HRGN UpdateRgn, if (Flags & (RDW_INVALIDATE | RDW_VALIDATE | RDW_INTERNALPAINT | RDW_NOINTERNALPAINT)) { - IntInvalidateWindows(Window, hRgn, Flags, TRUE); - } else - if (Window->UpdateRegion != NULL && (Flags & (RDW_ERASENOW | RDW_UPDATENOW))) - { - /* Validate parent covered by region. */ - IntValidateParent(Window, Window->UpdateRegion); - IntValidateParent(Window, Window->NCUpdateRegion); + IntInvalidateWindows(Window, hRgn, Flags); } /* diff --git a/reactos/subsys/win32k/ntuser/window.c b/reactos/subsys/win32k/ntuser/window.c index 4899675a294..b0ae7ebeeee 100644 --- a/reactos/subsys/win32k/ntuser/window.c +++ b/reactos/subsys/win32k/ntuser/window.c @@ -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: window.c,v 1.176 2004/01/17 15:18:25 navaraf Exp $ +/* $Id: window.c,v 1.177 2004/01/18 08:29:31 navaraf Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -1555,7 +1555,6 @@ NtUserDestroyWindow(HWND Wnd) } /* Recursively destroy owned windows */ -#if 0 /* FIXME */ if (! isChild) { for (;;) @@ -1573,6 +1572,10 @@ NtUserDestroyWindow(HWND Wnd) for (ChildHandle = Children; *ChildHandle; ++ChildHandle) { Child = IntGetWindowObject(*ChildHandle); + if (Child == NULL) + { + continue; + } if (Child->Owner != Window) { continue; @@ -1599,7 +1602,6 @@ NtUserDestroyWindow(HWND Wnd) } } } -#endif if (!IntIsWindow(Wnd)) { @@ -3112,23 +3114,6 @@ NtUserSetWindowPos( int cy, UINT uFlags) { - PWINDOW_OBJECT WindowObject; - - WindowObject = IntGetWindowObject(hWnd); - if (WindowObject == NULL) - { - SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE); - return FALSE; - } - - if (WindowObject->Style & WS_CHILD) - { - X += WindowObject->Parent->ClientRect.left; - Y += WindowObject->Parent->ClientRect.top; - } - - IntReleaseWindowObject(WindowObject); - return WinPosSetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags); } diff --git a/reactos/subsys/win32k/ntuser/winpos.c b/reactos/subsys/win32k/ntuser/winpos.c index b2263c2941a..06f51ff30a9 100644 --- a/reactos/subsys/win32k/ntuser/winpos.c +++ b/reactos/subsys/win32k/ntuser/winpos.c @@ -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.81 2004/01/17 15:18:25 navaraf Exp $ +/* $Id: winpos.c,v 1.82 2004/01/18 08:29:31 navaraf Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -268,6 +268,8 @@ WinPosMinMaximize(PWINDOW_OBJECT WindowObject, UINT ShowFlag, RECT* NewPos) { WinPosGetMinMaxInfo(WindowObject, &Size, &InternalPos->MaxPos, NULL, NULL); + DPRINT1("Maximize: %d,%d %dx%d\n", + InternalPos->MaxPos.x, InternalPos->MaxPos.y, Size.x, Size.y); if (WindowObject->Style & WS_MINIMIZE) { WindowObject->Style &= ~WS_MINIMIZE; @@ -757,11 +759,6 @@ WinPosSetWindowPos(HWND Wnd, HWND WndInsertAfter, INT x, INT y, INT cx, WinPos.cx = cx; WinPos.cy = cy; WinPos.flags = flags; - if (Window->Style & WS_CHILD) - { - WinPos.x -= Window->Parent->ClientRect.left; - WinPos.y -= Window->Parent->ClientRect.top; - } WinPosDoWinPosChanging(Window, &WinPos, &NewWindowRect, &NewClientRect);