mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 23:46:50 +00:00
[Win32SS]
- Move WM_SETREDRAW and WM_SYNCPAINT to Win32k. - Patch by Alex Henrie: Minimize and maximize boxes can only appear when WS_SYSMENU is set. svn path=/trunk/; revision=57105
This commit is contained in:
parent
eb4e6cb7ca
commit
89341a215c
|
@ -230,6 +230,40 @@ IntDefWindowProc(
|
||||||
return GetNCHitEx(Wnd, Point);
|
return GetNCHitEx(Wnd, Point);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case WM_SYNCPAINT:
|
||||||
|
{
|
||||||
|
HRGN hRgn;
|
||||||
|
Wnd->state &= ~WNDS_SYNCPAINTPENDING;
|
||||||
|
ERR("WM_SYNCPAINT\n");
|
||||||
|
hRgn = IntSysCreateRectRgn(0, 0, 0, 0);
|
||||||
|
if (co_UserGetUpdateRgn(Wnd, hRgn, FALSE) != NULLREGION)
|
||||||
|
{
|
||||||
|
if (!wParam) wParam = (RDW_ERASENOW | RDW_ERASE | RDW_FRAME | RDW_ALLCHILDREN);
|
||||||
|
co_UserRedrawWindow(Wnd, NULL, hRgn, wParam);
|
||||||
|
}
|
||||||
|
GreDeleteObject(hRgn);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
case WM_SETREDRAW:
|
||||||
|
if (wParam)
|
||||||
|
{
|
||||||
|
if (!(Wnd->style & WS_VISIBLE))
|
||||||
|
{
|
||||||
|
IntSetStyle( Wnd, WS_VISIBLE, 0 );
|
||||||
|
Wnd->state |= WNDS_SENDNCPAINT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Wnd->style & WS_VISIBLE)
|
||||||
|
{
|
||||||
|
co_UserRedrawWindow( Wnd, NULL, NULL, RDW_ALLCHILDREN | RDW_VALIDATE );
|
||||||
|
IntSetStyle( Wnd, 0, WS_VISIBLE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* ReactOS only. */
|
/* ReactOS only. */
|
||||||
case WM_CBT:
|
case WM_CBT:
|
||||||
{
|
{
|
||||||
|
@ -373,8 +407,7 @@ GetNCHitEx(PWND pWnd, POINT pt)
|
||||||
rcWindow.top += UserGetSystemMetrics(SM_CYCAPTION) - 1;
|
rcWindow.top += UserGetSystemMetrics(SM_CYCAPTION) - 1;
|
||||||
if (!RECTL_bPointInRect( &rcWindow, pt.x, pt.y ))
|
if (!RECTL_bPointInRect( &rcWindow, pt.x, pt.y ))
|
||||||
{
|
{
|
||||||
BOOL min_or_max_box = (Style & WS_MAXIMIZEBOX) ||
|
BOOL min_or_max_box = (Style & WS_SYSMENU) && (Style & (WS_MINIMIZEBOX|WS_MAXIMIZEBOX));
|
||||||
(Style & WS_MINIMIZEBOX);
|
|
||||||
if (ExStyle & WS_EX_LAYOUTRTL)
|
if (ExStyle & WS_EX_LAYOUTRTL)
|
||||||
{
|
{
|
||||||
/* Check system menu */
|
/* Check system menu */
|
||||||
|
|
|
@ -1245,7 +1245,7 @@ User32DefWindowProc(HWND hWnd,
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
case WM_SYNCPAINT:
|
case WM_SYNCPAINT:
|
||||||
{
|
{
|
||||||
HRGN hRgn;
|
HRGN hRgn;
|
||||||
|
@ -1272,7 +1272,7 @@ User32DefWindowProc(HWND hWnd,
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
{
|
{
|
||||||
DestroyWindow(hWnd);
|
DestroyWindow(hWnd);
|
||||||
|
@ -1816,6 +1816,8 @@ User32DefWindowProc(HWND hWnd,
|
||||||
/* Move to win32k !*/
|
/* Move to win32k !*/
|
||||||
case WM_SHOWWINDOW:
|
case WM_SHOWWINDOW:
|
||||||
if (!lParam) break; // Call when it is necessary.
|
if (!lParam) break; // Call when it is necessary.
|
||||||
|
case WM_SYNCPAINT:
|
||||||
|
case WM_SETREDRAW:
|
||||||
case WM_CLIENTSHUTDOWN:
|
case WM_CLIENTSHUTDOWN:
|
||||||
case WM_GETHOTKEY:
|
case WM_GETHOTKEY:
|
||||||
case WM_SETHOTKEY:
|
case WM_SETHOTKEY:
|
||||||
|
|
Loading…
Reference in a new issue