Commit cd337174 authored by Alexandre Julliard's avatar Alexandre Julliard

user32: Return a proper rectangle from WINPOS_MinMaximize.

parent ee120e01
...@@ -1249,7 +1249,8 @@ static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, LPCWSTR className, UINT flags ...@@ -1249,7 +1249,8 @@ static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, LPCWSTR className, UINT flags
swFlag = WINPOS_MinMaximize( hwnd, swFlag, &newPos ); swFlag = WINPOS_MinMaximize( hwnd, swFlag, &newPos );
swFlag |= SWP_FRAMECHANGED; /* Frame always gets changed */ swFlag |= SWP_FRAMECHANGED; /* Frame always gets changed */
if (!(style & WS_VISIBLE) || (style & WS_CHILD) || GetActiveWindow()) swFlag |= SWP_NOACTIVATE; if (!(style & WS_VISIBLE) || (style & WS_CHILD) || GetActiveWindow()) swFlag |= SWP_NOACTIVATE;
SetWindowPos( hwnd, 0, newPos.left, newPos.top, newPos.right, newPos.bottom, swFlag ); SetWindowPos( hwnd, 0, newPos.left, newPos.top, newPos.right - newPos.left,
newPos.bottom - newPos.top, swFlag );
} }
/* Notify the parent window only */ /* Notify the parent window only */
......
...@@ -905,7 +905,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect ) ...@@ -905,7 +905,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
if (!(old_style & WS_MINIMIZE)) swpFlags |= SWP_STATECHANGED; if (!(old_style & WS_MINIMIZE)) swpFlags |= SWP_STATECHANGED;
SetRect( rect, wpl.ptMinPosition.x, wpl.ptMinPosition.y, SetRect( rect, wpl.ptMinPosition.x, wpl.ptMinPosition.y,
GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON) ); wpl.ptMinPosition.x + GetSystemMetrics(SM_CXICON),
wpl.ptMinPosition.y + GetSystemMetrics(SM_CYICON) );
swpFlags |= SWP_NOCOPYBITS; swpFlags |= SWP_NOCOPYBITS;
break; break;
...@@ -919,7 +920,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect ) ...@@ -919,7 +920,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
if (old_style & WS_MINIMIZE) WINPOS_ShowIconTitle( hwnd, FALSE ); if (old_style & WS_MINIMIZE) WINPOS_ShowIconTitle( hwnd, FALSE );
if (!(old_style & WS_MAXIMIZE)) swpFlags |= SWP_STATECHANGED; if (!(old_style & WS_MAXIMIZE)) swpFlags |= SWP_STATECHANGED;
SetRect( rect, wpl.ptMaxPosition.x, wpl.ptMaxPosition.y, size.x, size.y ); SetRect( rect, wpl.ptMaxPosition.x, wpl.ptMaxPosition.y,
wpl.ptMaxPosition.x + size.x, wpl.ptMaxPosition.y + size.y );
break; break;
case SW_SHOWNOACTIVATE: case SW_SHOWNOACTIVATE:
...@@ -941,7 +943,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect ) ...@@ -941,7 +943,8 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
WINPOS_GetMinMaxInfo( hwnd, &size, &wpl.ptMaxPosition, NULL, NULL); WINPOS_GetMinMaxInfo( hwnd, &size, &wpl.ptMaxPosition, NULL, NULL);
WIN_SetStyle( hwnd, WS_MAXIMIZE, 0 ); WIN_SetStyle( hwnd, WS_MAXIMIZE, 0 );
swpFlags |= SWP_STATECHANGED; swpFlags |= SWP_STATECHANGED;
SetRect( rect, wpl.ptMaxPosition.x, wpl.ptMaxPosition.y, size.x, size.y ); SetRect( rect, wpl.ptMaxPosition.x, wpl.ptMaxPosition.y,
wpl.ptMaxPosition.x + size.x, wpl.ptMaxPosition.y + size.y );
break; break;
} }
} }
...@@ -952,9 +955,6 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect ) ...@@ -952,9 +955,6 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
/* Restore to normal position */ /* Restore to normal position */
*rect = wpl.rcNormalPosition; *rect = wpl.rcNormalPosition;
rect->right -= rect->left;
rect->bottom -= rect->top;
break; break;
} }
...@@ -1055,7 +1055,7 @@ static BOOL show_window( HWND hwnd, INT cmd ) ...@@ -1055,7 +1055,7 @@ static BOOL show_window( HWND hwnd, INT cmd )
} }
else else
SetWindowPos( hwnd, HWND_TOP, newPos.left, newPos.top, SetWindowPos( hwnd, HWND_TOP, newPos.left, newPos.top,
newPos.right, newPos.bottom, LOWORD(swp) ); newPos.right - newPos.left, newPos.bottom - newPos.top, swp );
if (cmd == SW_HIDE) if (cmd == SW_HIDE)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment