user32: Send WM_SIZE when window changes state between restored/min/maximized.

This commit is contained in:
Juris Smotrovs 2006-05-25 15:26:04 +03:00 committed by Alexandre Julliard
parent 7b6fbd2898
commit b8d9f3955a
4 changed files with 16 additions and 6 deletions

View File

@ -65,7 +65,7 @@ static void DEFWND_HandleWindowPosChanged( HWND hwnd, const WINDOWPOS *winpos )
if (!(winpos->flags & SWP_NOCLIENTMOVE)) if (!(winpos->flags & SWP_NOCLIENTMOVE))
SendMessageW( hwnd, WM_MOVE, 0, MAKELONG(rect.left, rect.top)); SendMessageW( hwnd, WM_MOVE, 0, MAKELONG(rect.left, rect.top));
if (!(winpos->flags & SWP_NOCLIENTSIZE)) if (!(winpos->flags & SWP_NOCLIENTSIZE) || (winpos->flags & SWP_STATECHANGED))
{ {
WPARAM wp = SIZE_RESTORED; WPARAM wp = SIZE_RESTORED;
if (IsZoomed(hwnd)) wp = SIZE_MAXIMIZED; if (IsZoomed(hwnd)) wp = SIZE_MAXIMIZED;

View File

@ -1435,6 +1435,16 @@ static void ok_sequence_(const struct message *expected, const char *context, in
"%s: in msg 0x%04x expecting lParam 0x%lx got 0x%lx\n", "%s: in msg 0x%04x expecting lParam 0x%lx got 0x%lx\n",
context, expected->message, expected->lParam, actual->lParam); context, expected->message, expected->lParam, actual->lParam);
} }
if ((expected->flags & defwinproc) != (actual->flags & defwinproc) && todo)
{
todo_wine {
failcount ++;
ok_( file, line) (FALSE,
"%s: in msg 0x%04x expecting lParam 0x%lx got 0x%lx\n",
context, expected->message, expected->lParam, actual->lParam);
}
}
else
ok_( file, line) ((expected->flags & defwinproc) == (actual->flags & defwinproc), ok_( file, line) ((expected->flags & defwinproc) == (actual->flags & defwinproc),
"%s: the msg 0x%04x should %shave been sent by DefWindowProc\n", "%s: the msg 0x%04x should %shave been sent by DefWindowProc\n",
context, expected->message, (expected->flags & defwinproc) ? "" : "NOT "); context, expected->message, (expected->flags & defwinproc) ? "" : "NOT ");

View File

@ -1031,9 +1031,8 @@ BOOL X11DRV_ShowWindow( HWND hwnd, INT cmd )
{ {
/* it appears that Windows always adds an undocumented 0x8000 /* it appears that Windows always adds an undocumented 0x8000
* flag if the state of a window changes. * flag if the state of a window changes.
* FIXME: real SWP_xxxx name?
*/ */
swp |= 0x8000; swp |= SWP_STATECHANGED;
} }
} }

View File

@ -30,6 +30,7 @@
/* undocumented SWP flags - from SDK 3.1 */ /* undocumented SWP flags - from SDK 3.1 */
#define SWP_NOCLIENTSIZE 0x0800 #define SWP_NOCLIENTSIZE 0x0800
#define SWP_NOCLIENTMOVE 0x1000 #define SWP_NOCLIENTMOVE 0x1000
#define SWP_STATECHANGED 0x8000
extern BOOL WINPOS_RedrawIconTitle( HWND hWnd ); extern BOOL WINPOS_RedrawIconTitle( HWND hWnd );
extern BOOL WINPOS_ShowIconTitle( HWND hwnd, BOOL bShow ); extern BOOL WINPOS_ShowIconTitle( HWND hwnd, BOOL bShow );