diff --git a/client/net_xfer.C b/client/net_xfer.C index ac6641a456..fa480ab779 100644 --- a/client/net_xfer.C +++ b/client/net_xfer.C @@ -128,7 +128,7 @@ int NET_XFER::open_server() { NetClose(); return -1; } - if (WSAAsyncSelect( fd, g_myWnd->GetSafeHwnd(), WM_TIMER, FD_READ|FD_WRITE )) { + if (WSAAsyncSelect( fd, g_myWnd->GetSafeHwnd(), g_myWnd->m_nNetActivityMsg, FD_READ|FD_WRITE )) { errno = WSAGetLastError(); if (errno != WSAEINPROGRESS && errno != WSAEWOULDBLOCK) { closesocket(fd); diff --git a/client/win/win_util.h b/client/win/win_util.h index 4890831d06..3e47e24934 100755 --- a/client/win/win_util.h +++ b/client/win/win_util.h @@ -10,3 +10,4 @@ int UtilInitOSVersion( void ); #define START_SS_MSG "BOINC_SS_START" #define SHOW_WIN_MSG "BOINC_SHOW_MESSAGE" #define RUN_MUTEX "BOINC_MUTEX" +#define NET_ACTIVITY_MSG "BOINC_NET_ACTIVITY" diff --git a/client/win/wingui_mainwindow.cpp b/client/win/wingui_mainwindow.cpp index 30db04a53c..13a6a538a5 100755 --- a/client/win/wingui_mainwindow.cpp +++ b/client/win/wingui_mainwindow.cpp @@ -108,6 +108,7 @@ CMainWindow::CMainWindow() m_nScreenSaverMsg = RegisterWindowMessage(START_SS_MSG); m_nShowMsg = RegisterWindowMessage(SHOW_WIN_MSG); + m_nNetActivityMsg = RegisterWindowMessage(NET_ACTIVITY_MSG); } ////////// @@ -918,6 +919,9 @@ LRESULT CMainWindow::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) } else if(m_nScreenSaverMsg == message) { m_pSSWnd->SetMode(MODE_FULLSCREEN); return 0; + } else if(m_nNetActivityMsg == message) { + while(gstate.net_sleep(0)); + return 0; } return CWnd::DefWindowProc(message, wParam, lParam); diff --git a/client/win/wingui_mainwindow.h b/client/win/wingui_mainwindow.h index f3ab857f8e..eb381a2122 100755 --- a/client/win/wingui_mainwindow.h +++ b/client/win/wingui_mainwindow.h @@ -88,6 +88,7 @@ public: void MessageUser(char*,char*,char*); BOOL IsSuspended(); BOOL RequestNetConnect(); + UINT m_nNetActivityMsg; // ID of net activity message protected: CMenu m_MainMenu; // window's main menu