mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 15:16:35 +00:00
- Revert vis.c and winpos.c changes from 27672, due to a bug 2409.
- Fix win32k compiling without compilation units. See issue #2409 for more details. svn path=/trunk/; revision=27726
This commit is contained in:
parent
68f474c5af
commit
3c7b25d58e
3 changed files with 48 additions and 38 deletions
|
@ -229,7 +229,7 @@ IntGetNCUpdateRgn(PWINDOW_OBJECT Window, BOOL Validate)
|
||||||
* Internal function used by IntRedrawWindow.
|
* Internal function used by IntRedrawWindow.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static VOID FASTCALL
|
VOID FASTCALL
|
||||||
co_IntPaintWindows(PWINDOW_OBJECT Window, ULONG Flags, BOOL Recurse)
|
co_IntPaintWindows(PWINDOW_OBJECT Window, ULONG Flags, BOOL Recurse)
|
||||||
{
|
{
|
||||||
HDC hDC;
|
HDC hDC;
|
||||||
|
|
|
@ -167,7 +167,7 @@ co_VIS_WindowLayoutChanged(
|
||||||
|
|
||||||
UserRefObjectCo(Parent, &Ref);
|
UserRefObjectCo(Parent, &Ref);
|
||||||
co_UserRedrawWindow(Parent, NULL, Temp,
|
co_UserRedrawWindow(Parent, NULL, Temp,
|
||||||
RDW_FRAME | RDW_ERASE | RDW_ERASENOW | RDW_INVALIDATE |
|
RDW_FRAME | RDW_ERASE | RDW_INVALIDATE |
|
||||||
RDW_ALLCHILDREN);
|
RDW_ALLCHILDREN);
|
||||||
UserDerefObjectCo(Parent);
|
UserDerefObjectCo(Parent);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,12 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
VOID FASTCALL
|
||||||
|
co_IntPaintWindows(PWINDOW_OBJECT Window, ULONG Flags, BOOL Recurse);
|
||||||
|
|
||||||
|
BOOL FASTCALL
|
||||||
|
IntValidateParent(PWINDOW_OBJECT Child, HRGN hValidateRgn, BOOL Recurse);
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
#define MINMAX_NOSWP (0x00010000)
|
#define MINMAX_NOSWP (0x00010000)
|
||||||
|
@ -1197,7 +1203,6 @@ co_WinPosSetWindowPos(
|
||||||
CopyRect.left + (OldWindowRect.left - NewWindowRect.left),
|
CopyRect.left + (OldWindowRect.left - NewWindowRect.left),
|
||||||
CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY, 0, 0);
|
CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY, 0, 0);
|
||||||
UserReleaseDC(Window, Dc, FALSE);
|
UserReleaseDC(Window, Dc, FALSE);
|
||||||
IntValidateParent(Window, CopyRgn, FALSE);
|
|
||||||
NtGdiOffsetRgn(CopyRgn, -NewWindowRect.left, -NewWindowRect.top);
|
NtGdiOffsetRgn(CopyRgn, -NewWindowRect.left, -NewWindowRect.top);
|
||||||
}
|
}
|
||||||
else if(VisRgn)
|
else if(VisRgn)
|
||||||
|
@ -1224,6 +1229,14 @@ co_WinPosSetWindowPos(
|
||||||
}
|
}
|
||||||
if (RgnType != ERROR && RgnType != NULLREGION)
|
if (RgnType != ERROR && RgnType != NULLREGION)
|
||||||
{
|
{
|
||||||
|
/* old code
|
||||||
|
NtGdiOffsetRgn(DirtyRgn, Window->WindowRect.left, Window->WindowRect.top);
|
||||||
|
IntInvalidateWindows(Window, DirtyRgn,
|
||||||
|
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
|
||||||
|
}
|
||||||
|
NtGdiDeleteObject(DirtyRgn);
|
||||||
|
*/
|
||||||
|
|
||||||
PWINDOW_OBJECT Parent = Window->Parent;
|
PWINDOW_OBJECT Parent = Window->Parent;
|
||||||
|
|
||||||
NtGdiOffsetRgn(DirtyRgn,
|
NtGdiOffsetRgn(DirtyRgn,
|
||||||
|
@ -1234,16 +1247,13 @@ co_WinPosSetWindowPos(
|
||||||
!(Parent->Style & WS_CLIPCHILDREN))
|
!(Parent->Style & WS_CLIPCHILDREN))
|
||||||
{
|
{
|
||||||
IntInvalidateWindows(Parent, DirtyRgn,
|
IntInvalidateWindows(Parent, DirtyRgn,
|
||||||
RDW_ERASE | RDW_INVALIDATE | RDW_NOCHILDREN);
|
RDW_ERASE | RDW_INVALIDATE);
|
||||||
co_IntPaintWindows(Parent, RDW_ERASENOW | RDW_NOCHILDREN, FALSE);
|
co_IntPaintWindows(Parent, RDW_ERASENOW, FALSE);
|
||||||
IntInvalidateWindows(Window, DirtyRgn,
|
|
||||||
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IntInvalidateWindows(Window, DirtyRgn,
|
IntInvalidateWindows(Window, DirtyRgn,
|
||||||
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
|
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
|
||||||
co_IntPaintWindows(Window, RDW_ERASENOW, FALSE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
NtGdiDeleteObject(DirtyRgn);
|
NtGdiDeleteObject(DirtyRgn);
|
||||||
|
@ -1295,33 +1305,6 @@ co_WinPosSetWindowPos(
|
||||||
if ((WinPos.flags & SWP_AGG_STATUSFLAGS) != SWP_AGG_NOPOSCHANGE)
|
if ((WinPos.flags & SWP_AGG_STATUSFLAGS) != SWP_AGG_NOPOSCHANGE)
|
||||||
co_IntPostOrSendMessage(WinPos.hwnd, WM_WINDOWPOSCHANGED, 0, (LPARAM) &WinPos);
|
co_IntPostOrSendMessage(WinPos.hwnd, WM_WINDOWPOSCHANGED, 0, (LPARAM) &WinPos);
|
||||||
|
|
||||||
if ((Window->Flags & WINDOWOBJECT_NEED_SIZE) &&
|
|
||||||
!(Window->Status & WINDOWSTATUS_DESTROYING))
|
|
||||||
{
|
|
||||||
WPARAM wParam = SIZE_RESTORED;
|
|
||||||
|
|
||||||
Window->Flags &= ~WINDOWOBJECT_NEED_SIZE;
|
|
||||||
if (Window->Style & WS_MAXIMIZE)
|
|
||||||
{
|
|
||||||
wParam = SIZE_MAXIMIZED;
|
|
||||||
}
|
|
||||||
else if (Window->Style & WS_MINIMIZE)
|
|
||||||
{
|
|
||||||
wParam = SIZE_MINIMIZED;
|
|
||||||
}
|
|
||||||
|
|
||||||
co_IntSendMessage(Window->hSelf, WM_SIZE, wParam,
|
|
||||||
MAKELONG(Window->ClientRect.right -
|
|
||||||
Window->ClientRect.left,
|
|
||||||
Window->ClientRect.bottom -
|
|
||||||
Window->ClientRect.top));
|
|
||||||
co_IntSendMessage(Window->hSelf, WM_MOVE, 0,
|
|
||||||
MAKELONG(Window->ClientRect.left,
|
|
||||||
Window->ClientRect.top));
|
|
||||||
IntEngWindowChanged(Window, WOC_RGN_CLIENT);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1490,6 +1473,33 @@ co_WinPosShowWindow(PWINDOW_OBJECT Window, INT Cmd)
|
||||||
|
|
||||||
/* FIXME: Check for window destruction. */
|
/* FIXME: Check for window destruction. */
|
||||||
|
|
||||||
|
if ((Window->Flags & WINDOWOBJECT_NEED_SIZE) &&
|
||||||
|
!(Window->Status & WINDOWSTATUS_DESTROYING))
|
||||||
|
{
|
||||||
|
WPARAM wParam = SIZE_RESTORED;
|
||||||
|
|
||||||
|
Window->Flags &= ~WINDOWOBJECT_NEED_SIZE;
|
||||||
|
if (Window->Style & WS_MAXIMIZE)
|
||||||
|
{
|
||||||
|
wParam = SIZE_MAXIMIZED;
|
||||||
|
}
|
||||||
|
else if (Window->Style & WS_MINIMIZE)
|
||||||
|
{
|
||||||
|
wParam = SIZE_MINIMIZED;
|
||||||
|
}
|
||||||
|
|
||||||
|
co_IntSendMessage(Window->hSelf, WM_SIZE, wParam,
|
||||||
|
MAKELONG(Window->ClientRect.right -
|
||||||
|
Window->ClientRect.left,
|
||||||
|
Window->ClientRect.bottom -
|
||||||
|
Window->ClientRect.top));
|
||||||
|
co_IntSendMessage(Window->hSelf, WM_MOVE, 0,
|
||||||
|
MAKELONG(Window->ClientRect.left,
|
||||||
|
Window->ClientRect.top));
|
||||||
|
IntEngWindowChanged(Window, WOC_RGN_CLIENT);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* Activate the window if activation is not requested and the window is not minimized */
|
/* Activate the window if activation is not requested and the window is not minimized */
|
||||||
/*
|
/*
|
||||||
if (!(Swp & (SWP_NOACTIVATE | SWP_HIDEWINDOW)) && !(Window->Style & WS_MINIMIZE))
|
if (!(Swp & (SWP_NOACTIVATE | SWP_HIDEWINDOW)) && !(Window->Style & WS_MINIMIZE))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue