mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:33:07 +00:00
[NtUser]
- Fix test results for msg:msg_queue:test_broadcast. svn path=/trunk/; revision=72522
This commit is contained in:
parent
8496d0aa2e
commit
684902c4cc
1 changed files with 16 additions and 19 deletions
|
@ -554,6 +554,11 @@ IdlePong(VOID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL is_message_broadcastable(UINT msg)
|
||||||
|
{
|
||||||
|
return msg < WM_USER || msg >= 0xc000;
|
||||||
|
}
|
||||||
|
|
||||||
UINT FASTCALL
|
UINT FASTCALL
|
||||||
GetWakeMask(UINT first, UINT last )
|
GetWakeMask(UINT first, UINT last )
|
||||||
{
|
{
|
||||||
|
@ -1200,12 +1205,14 @@ UserPostMessage( HWND Wnd,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Wnd == HWND_BROADCAST)
|
if (Wnd == HWND_BROADCAST || Wnd == HWND_TOPMOST)
|
||||||
{
|
{
|
||||||
HWND *List;
|
HWND *List;
|
||||||
PWND DesktopWindow;
|
PWND DesktopWindow;
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
|
||||||
|
if (!is_message_broadcastable(Msg)) return TRUE;
|
||||||
|
|
||||||
DesktopWindow = UserGetDesktopWindow();
|
DesktopWindow = UserGetDesktopWindow();
|
||||||
List = IntWinListChildren(DesktopWindow);
|
List = IntWinListChildren(DesktopWindow);
|
||||||
|
|
||||||
|
@ -1495,6 +1502,8 @@ co_IntSendMessageTimeout( HWND hWnd,
|
||||||
return co_IntSendMessageTimeoutSingle(hWnd, Msg, wParam, lParam, uFlags, uTimeout, uResult);
|
return co_IntSendMessageTimeoutSingle(hWnd, Msg, wParam, lParam, uFlags, uTimeout, uResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!is_message_broadcastable(Msg)) return TRUE;
|
||||||
|
|
||||||
DesktopWindow = UserGetDesktopWindow();
|
DesktopWindow = UserGetDesktopWindow();
|
||||||
if (NULL == DesktopWindow)
|
if (NULL == DesktopWindow)
|
||||||
{
|
{
|
||||||
|
@ -1516,26 +1525,14 @@ co_IntSendMessageTimeout( HWND hWnd,
|
||||||
|
|
||||||
for (Child = Children; NULL != *Child; Child++)
|
for (Child = Children; NULL != *Child; Child++)
|
||||||
{
|
{
|
||||||
if (hWnd == HWND_TOPMOST)
|
PWND pwnd = UserGetWindowObject(*Child);
|
||||||
{
|
if (!pwnd) continue;
|
||||||
DesktopWindow = UserGetWindowObject(*Child);
|
|
||||||
if (DesktopWindow && DesktopWindow->ExStyle & WS_EX_TOPMOST)
|
|
||||||
{
|
|
||||||
ERR("HWND_TOPMOST Found\n");
|
|
||||||
co_IntSendMessageTimeoutSingle(*Child, Msg, wParam, lParam, uFlags, uTimeout, uResult);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PWND pwnd = UserGetWindowObject(*Child);
|
|
||||||
if (!pwnd) continue;
|
|
||||||
|
|
||||||
if ( pwnd->fnid == FNID_MENU ||
|
if ( pwnd->fnid == FNID_MENU ||
|
||||||
pwnd->pcls->atomClassName == gpsi->atomSysClass[ICLS_SWITCH] )
|
pwnd->pcls->atomClassName == gpsi->atomSysClass[ICLS_SWITCH] )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
co_IntSendMessageTimeoutSingle(*Child, Msg, wParam, lParam, uFlags, uTimeout, uResult);
|
co_IntSendMessageTimeoutSingle(*Child, Msg, wParam, lParam, uFlags, uTimeout, uResult);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ExFreePoolWithTag(Children, USERTAG_WINDOWLIST);
|
ExFreePoolWithTag(Children, USERTAG_WINDOWLIST);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue