Commit 6d9350fa authored by Alexandre Julliard's avatar Alexandre Julliard

Use a timeout when sending broadcast messages.

parent 736d96b5
......@@ -182,7 +182,8 @@ HCONV WINAPI DdeConnect(DWORD idInst, HSZ hszService, HSZ hszTopic,
LeaveCriticalSection(&WDML_CritSect);
/* note: sent messages shall not use packing */
SendMessageA(HWND_BROADCAST, WM_DDE_INITIATE, (WPARAM)hwndClient, MAKELPARAM(aSrv, aTpc));
SendMessageTimeoutW( HWND_BROADCAST, WM_DDE_INITIATE, (WPARAM)hwndClient, MAKELPARAM(aSrv, aTpc),
SMTO_ABORTIFHUNG, 2000, NULL );
EnterCriticalSection(&WDML_CritSect);
......
......@@ -110,7 +110,8 @@ static BOOL set_active_window( HWND hwnd, HWND *prev, BOOL mouse, BOOL focus )
{
/* send palette messages */
if (SendMessageW( hwnd, WM_QUERYNEWPALETTE, 0, 0 ))
SendMessageW( HWND_BROADCAST, WM_PALETTEISCHANGING, (WPARAM)hwnd, 0 );
SendMessageTimeoutW( HWND_BROADCAST, WM_PALETTEISCHANGING, (WPARAM)hwnd, 0,
SMTO_ABORTIFHUNG, 2000, NULL );
if (!(GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_MANAGED))
SetWindowPos( hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE );
......
......@@ -1467,7 +1467,8 @@ UINT WINAPI UserRealizePalette( HDC hDC )
{
/* send palette change notification */
HWND hWnd = WindowFromDC( hDC );
if (hWnd) SendMessageA( HWND_BROADCAST, WM_PALETTECHANGED, (WPARAM)hWnd, 0L);
if (hWnd) SendMessageTimeoutW( HWND_BROADCAST, WM_PALETTECHANGED, (WPARAM)hWnd, 0,
SMTO_ABORTIFHUNG, 2000, NULL );
}
return realized;
}
......@@ -252,7 +252,8 @@ VOID WINAPI SetSysColors16( INT16 nChanges, const INT16 *lpSysColor,
/* Send WM_SYSCOLORCHANGE message to all windows */
SendMessageA( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );
SendMessageTimeoutW( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0,
SMTO_ABORTIFHUNG, 2000, NULL );
/* Repaint affected portions of all visible windows */
......@@ -276,7 +277,8 @@ BOOL WINAPI SetSysColors( INT nChanges, const INT *lpSysColor,
/* Send WM_SYSCOLORCHANGE message to all windows */
SendMessageA( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0 );
SendMessageTimeoutW( HWND_BROADCAST, WM_SYSCOLORCHANGE, 0, 0,
SMTO_ABORTIFHUNG, 2000, NULL );
/* Repaint affected portions of all visible windows */
......
......@@ -354,13 +354,16 @@ static HKEY get_volatile_regkey(void)
*/
void SYSPARAMS_NotifyChange( UINT uiAction, UINT fWinIni )
{
static const WCHAR emptyW[1];
if (notify_change)
{
if (fWinIni & SPIF_UPDATEINIFILE)
{
if (fWinIni & (SPIF_SENDWININICHANGE | SPIF_SENDCHANGE))
SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE,
uiAction, (LPARAM) "");
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE,
uiAction, (LPARAM) emptyW,
SMTO_ABORTIFHUNG, 2000, NULL );
}
else
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment