user32: Post notification to the desktop window for window creation/activation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4c92dd98a4
commit
596c16cc13
|
@ -1102,6 +1102,7 @@ static void NC_DoNCPaint( HWND hwnd, HRGN clip )
|
||||||
*/
|
*/
|
||||||
LRESULT NC_HandleNCPaint( HWND hwnd , HRGN clip)
|
LRESULT NC_HandleNCPaint( HWND hwnd , HRGN clip)
|
||||||
{
|
{
|
||||||
|
HWND parent = GetAncestor( hwnd, GA_PARENT );
|
||||||
DWORD dwStyle = GetWindowLongW( hwnd, GWL_STYLE );
|
DWORD dwStyle = GetWindowLongW( hwnd, GWL_STYLE );
|
||||||
|
|
||||||
if( dwStyle & WS_VISIBLE )
|
if( dwStyle & WS_VISIBLE )
|
||||||
|
@ -1110,6 +1111,9 @@ LRESULT NC_HandleNCPaint( HWND hwnd , HRGN clip)
|
||||||
WINPOS_RedrawIconTitle( hwnd );
|
WINPOS_RedrawIconTitle( hwnd );
|
||||||
else
|
else
|
||||||
NC_DoNCPaint( hwnd, clip );
|
NC_DoNCPaint( hwnd, clip );
|
||||||
|
|
||||||
|
if (parent == GetDesktopWindow())
|
||||||
|
PostMessageW( parent, WM_PARENTNOTIFY, WM_NCPAINT, (LPARAM)hwnd );
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1122,6 +1126,7 @@ LRESULT NC_HandleNCPaint( HWND hwnd , HRGN clip)
|
||||||
*/
|
*/
|
||||||
LRESULT NC_HandleNCActivate( HWND hwnd, WPARAM wParam, LPARAM lParam )
|
LRESULT NC_HandleNCActivate( HWND hwnd, WPARAM wParam, LPARAM lParam )
|
||||||
{
|
{
|
||||||
|
HWND parent;
|
||||||
WND* wndPtr = WIN_GetPtr( hwnd );
|
WND* wndPtr = WIN_GetPtr( hwnd );
|
||||||
|
|
||||||
if (!wndPtr || wndPtr == WND_OTHER_PROCESS) return FALSE;
|
if (!wndPtr || wndPtr == WND_OTHER_PROCESS) return FALSE;
|
||||||
|
@ -1133,6 +1138,7 @@ LRESULT NC_HandleNCActivate( HWND hwnd, WPARAM wParam, LPARAM lParam )
|
||||||
*/
|
*/
|
||||||
if (wParam) wndPtr->flags |= WIN_NCACTIVATED;
|
if (wParam) wndPtr->flags |= WIN_NCACTIVATED;
|
||||||
else wndPtr->flags &= ~WIN_NCACTIVATED;
|
else wndPtr->flags &= ~WIN_NCACTIVATED;
|
||||||
|
parent = wndPtr->parent;
|
||||||
WIN_ReleasePtr( wndPtr );
|
WIN_ReleasePtr( wndPtr );
|
||||||
|
|
||||||
/* This isn't documented but is reproducible in at least XP SP2 and
|
/* This isn't documented but is reproducible in at least XP SP2 and
|
||||||
|
@ -1144,6 +1150,9 @@ LRESULT NC_HandleNCActivate( HWND hwnd, WPARAM wParam, LPARAM lParam )
|
||||||
WINPOS_RedrawIconTitle( hwnd );
|
WINPOS_RedrawIconTitle( hwnd );
|
||||||
else
|
else
|
||||||
NC_DoNCPaint( hwnd, (HRGN)1 );
|
NC_DoNCPaint( hwnd, (HRGN)1 );
|
||||||
|
|
||||||
|
if (parent == GetDesktopWindow())
|
||||||
|
PostMessageW( parent, WM_PARENTNOTIFY, WM_NCACTIVATE, (LPARAM)hwnd );
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -1659,6 +1659,9 @@ HWND WIN_CreateWindowEx( CREATESTRUCTW *cs, LPCWSTR className, HINSTANCE module,
|
||||||
send_parent_notify( hwnd, WM_CREATE );
|
send_parent_notify( hwnd, WM_CREATE );
|
||||||
if (!IsWindow( hwnd )) return 0;
|
if (!IsWindow( hwnd )) return 0;
|
||||||
|
|
||||||
|
if (parent == GetDesktopWindow())
|
||||||
|
PostMessageW( parent, WM_PARENTNOTIFY, WM_CREATE, (LPARAM)hwnd );
|
||||||
|
|
||||||
if (cs->style & WS_VISIBLE)
|
if (cs->style & WS_VISIBLE)
|
||||||
{
|
{
|
||||||
if (cs->style & WS_MAXIMIZE)
|
if (cs->style & WS_MAXIMIZE)
|
||||||
|
|
Loading…
Reference in New Issue