Module: wine Branch: refs/heads/master Commit: b8d9f3955a2104e629575b41f674ce625f771e60 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=b8d9f3955a2104e629575b41...
Author: Juris Smotrovs juris.smotrovs@sets.lv Date: Thu May 25 15:26:04 2006 +0300
user32: Send WM_SIZE when window changes state between restored/min/maximized.
---
dlls/user/defwnd.c | 2 +- dlls/user/tests/msg.c | 16 +++++++++++++--- dlls/x11drv/winpos.c | 3 +-- include/winpos.h | 1 + 4 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/dlls/user/defwnd.c b/dlls/user/defwnd.c index be71e75..da38c63 100644 --- a/dlls/user/defwnd.c +++ b/dlls/user/defwnd.c @@ -65,7 +65,7 @@ static void DEFWND_HandleWindowPosChange if (!(winpos->flags & SWP_NOCLIENTMOVE)) 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; if (IsZoomed(hwnd)) wp = SIZE_MAXIMIZED; diff --git a/dlls/user/tests/msg.c b/dlls/user/tests/msg.c index c718a37..848e7d9 100644 --- a/dlls/user/tests/msg.c +++ b/dlls/user/tests/msg.c @@ -1435,9 +1435,19 @@ static void ok_sequence_(const struct me "%s: in msg 0x%04x expecting lParam 0x%lx got 0x%lx\n", context, expected->message, expected->lParam, actual->lParam); } - ok_( file, line) ((expected->flags & defwinproc) == (actual->flags & defwinproc), - "%s: the msg 0x%04x should %shave been sent by DefWindowProc\n", - context, expected->message, (expected->flags & defwinproc) ? "" : "NOT "); + 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), + "%s: the msg 0x%04x should %shave been sent by DefWindowProc\n", + context, expected->message, (expected->flags & defwinproc) ? "" : "NOT "); ok_( file, line) ((expected->flags & beginpaint) == (actual->flags & beginpaint), "%s: the msg 0x%04x should %shave been sent by BeginPaint\n", context, expected->message, (expected->flags & beginpaint) ? "" : "NOT "); diff --git a/dlls/x11drv/winpos.c b/dlls/x11drv/winpos.c index 64ffa8b..1da69d3 100644 --- a/dlls/x11drv/winpos.c +++ b/dlls/x11drv/winpos.c @@ -1031,9 +1031,8 @@ BOOL X11DRV_ShowWindow( HWND hwnd, INT c { /* it appears that Windows always adds an undocumented 0x8000 * flag if the state of a window changes. - * FIXME: real SWP_xxxx name? */ - swp |= 0x8000; + swp |= SWP_STATECHANGED; } }
diff --git a/include/winpos.h b/include/winpos.h index 61b8b53..ea3008f 100644 --- a/include/winpos.h +++ b/include/winpos.h @@ -30,6 +30,7 @@ #include <winuser.h> /* undocumented SWP flags - from SDK 3.1 */ #define SWP_NOCLIENTSIZE 0x0800 #define SWP_NOCLIENTMOVE 0x1000 +#define SWP_STATECHANGED 0x8000
extern BOOL WINPOS_RedrawIconTitle( HWND hWnd ); extern BOOL WINPOS_ShowIconTitle( HWND hwnd, BOOL bShow );