user32: Don't reinitialize the window placement even if the window rect is empty.
This commit is contained in:
parent
01584fb318
commit
aef7723c3e
|
@ -1072,6 +1072,9 @@ static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, LPCWSTR className, UINT flags
|
||||||
wndPtr->hSysMenu = 0;
|
wndPtr->hSysMenu = 0;
|
||||||
wndPtr->flags |= (flags & WIN_ISWIN32);
|
wndPtr->flags |= (flags & WIN_ISWIN32);
|
||||||
|
|
||||||
|
wndPtr->min_pos.x = wndPtr->min_pos.y = -1;
|
||||||
|
wndPtr->max_pos.x = wndPtr->max_pos.y = -1;
|
||||||
|
|
||||||
if (wndPtr->dwStyle & WS_SYSMENU) SetSystemMenu( hwnd, 0 );
|
if (wndPtr->dwStyle & WS_SYSMENU) SetSystemMenu( hwnd, 0 );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -582,36 +582,6 @@ BOOL WINAPI MoveWindow( HWND hwnd, INT x, INT y, INT cx, INT cy,
|
||||||
return SetWindowPos( hwnd, 0, x, y, cx, cy, flags );
|
return SetWindowPos( hwnd, 0, x, y, cx, cy, flags );
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* WINPOS_InitPlacement
|
|
||||||
*/
|
|
||||||
static void WINPOS_InitPlacement( WND* wnd )
|
|
||||||
{
|
|
||||||
if (IsRectEmpty( &wnd->normal_rect ))
|
|
||||||
{
|
|
||||||
/* this happens when the window is minimized/maximized
|
|
||||||
* for the first time (rectWindow is not adjusted yet) */
|
|
||||||
|
|
||||||
wnd->normal_rect = wnd->rectWindow;
|
|
||||||
wnd->min_pos.x = wnd->min_pos.y = -1;
|
|
||||||
wnd->max_pos.x = wnd->max_pos.y = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( wnd->dwStyle & WS_MINIMIZE )
|
|
||||||
{
|
|
||||||
wnd->min_pos.x = wnd->rectWindow.left;
|
|
||||||
wnd->min_pos.y = wnd->rectWindow.top;
|
|
||||||
}
|
|
||||||
else if( wnd->dwStyle & WS_MAXIMIZE )
|
|
||||||
{
|
|
||||||
wnd->max_pos.x = wnd->rectWindow.left;
|
|
||||||
wnd->max_pos.y = wnd->rectWindow.top;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wnd->normal_rect = wnd->rectWindow;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* WINPOS_RedrawIconTitle
|
* WINPOS_RedrawIconTitle
|
||||||
|
@ -1201,7 +1171,22 @@ BOOL WINAPI GetWindowPlacement( HWND hwnd, WINDOWPLACEMENT *wndpl )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINPOS_InitPlacement( pWnd );
|
/* update the placement according to the current style */
|
||||||
|
if (pWnd->dwStyle & WS_MINIMIZE)
|
||||||
|
{
|
||||||
|
pWnd->min_pos.x = pWnd->rectWindow.left;
|
||||||
|
pWnd->min_pos.y = pWnd->rectWindow.top;
|
||||||
|
}
|
||||||
|
else if (pWnd->dwStyle & WS_MAXIMIZE)
|
||||||
|
{
|
||||||
|
pWnd->max_pos.x = pWnd->rectWindow.left;
|
||||||
|
pWnd->max_pos.y = pWnd->rectWindow.top;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pWnd->normal_rect = pWnd->rectWindow;
|
||||||
|
}
|
||||||
|
|
||||||
wndpl->length = sizeof(*wndpl);
|
wndpl->length = sizeof(*wndpl);
|
||||||
if( pWnd->dwStyle & WS_MINIMIZE )
|
if( pWnd->dwStyle & WS_MINIMIZE )
|
||||||
wndpl->showCmd = SW_SHOWMINIMIZED;
|
wndpl->showCmd = SW_SHOWMINIMIZED;
|
||||||
|
|
Loading…
Reference in New Issue