Also send message to desktop window with HWND_BROADCAST.

svn path=/branches/reactos-yarotows/; revision=46726
This commit is contained in:
Jérôme Gardou 2010-04-04 23:20:02 +00:00
parent cc94bd25eb
commit 327d8a1ac6

View file

@ -366,7 +366,7 @@ IntDispatchMessage(PMSG pMsg)
(LPARAM)Time, (LPARAM)Time,
sizeof(LPARAM)); sizeof(LPARAM));
} }
return 0; return 0;
} }
else else
{ {
@ -591,7 +591,7 @@ co_IntTranslateMouseMessage(
*HitTest = HTCLIENT; *HitTest = HTCLIENT;
} }
if ( gspv.bMouseClickLock && if ( gspv.bMouseClickLock &&
( (Msg->message == WM_LBUTTONUP) || ( (Msg->message == WM_LBUTTONUP) ||
(Msg->message == WM_LBUTTONDOWN) ) ) (Msg->message == WM_LBUTTONDOWN) ) )
{ {
@ -1206,7 +1206,7 @@ UserPostMessage( HWND Wnd,
return FALSE; return FALSE;
} }
if (!Wnd) if (!Wnd)
return UserPostThreadMessage( PtrToInt(PsGetCurrentThreadId()), return UserPostThreadMessage( PtrToInt(PsGetCurrentThreadId()),
Msg, Msg,
wParam, wParam,
@ -1223,6 +1223,7 @@ UserPostMessage( HWND Wnd,
if (List != NULL) if (List != NULL)
{ {
UserPostMessage(DesktopWindow->hSelf, Msg, wParam, lParam);
for (i = 0; List[i]; i++) for (i = 0; List[i]; i++)
UserPostMessage(List[i], Msg, wParam, lParam); UserPostMessage(List[i], Msg, wParam, lParam);
ExFreePool(List); ExFreePool(List);
@ -1448,6 +1449,9 @@ co_IntSendMessageTimeout( HWND hWnd,
return 0; return 0;
} }
/* Send message to the desktop window too! */
co_IntSendMessageTimeoutSingle(DesktopWindow->hSelf, Msg, wParam, lParam, uFlags, uTimeout, uResult);
Children = IntWinListChildren(DesktopWindow); Children = IntWinListChildren(DesktopWindow);
if (NULL == Children) if (NULL == Children)
{ {
@ -1653,6 +1657,7 @@ UserSendNotifyMessage( HWND hWnd,
if (List != NULL) if (List != NULL)
{ {
UserSendNotifyMessage(DesktopWindow->hSelf, Msg, wParam, lParam);
for (i = 0; List[i]; i++) for (i = 0; List[i]; i++)
{ {
UserSendNotifyMessage(List[i], Msg, wParam, lParam); UserSendNotifyMessage(List[i], Msg, wParam, lParam);
@ -2263,7 +2268,7 @@ NtUserDispatchMessage(PMSG UnsafeMsgInfo)
BOOL Hit = FALSE; BOOL Hit = FALSE;
MSG SafeMsg; MSG SafeMsg;
UserEnterExclusive(); UserEnterExclusive();
_SEH2_TRY _SEH2_TRY
{ {
ProbeForRead(UnsafeMsgInfo, sizeof(MSG), 1); ProbeForRead(UnsafeMsgInfo, sizeof(MSG), 1);
@ -2275,7 +2280,7 @@ NtUserDispatchMessage(PMSG UnsafeMsgInfo)
Hit = TRUE; Hit = TRUE;
} }
_SEH2_END; _SEH2_END;
if (!Hit) Res = IntDispatchMessage(&SafeMsg); if (!Hit) Res = IntDispatchMessage(&SafeMsg);
UserLeave(); UserLeave();
@ -2496,11 +2501,11 @@ NtUserMessageCall(
{ {
BadChk = TRUE; BadChk = TRUE;
} }
_SEH2_END; _SEH2_END;
} }
break; break;
default: default:
break; break;
} }
UserLeave(); UserLeave();