attempt to fix stuttering when leaving win32 screen. seems to

work but will let testers make the final call.  also fixed
desktop synchronization by setting a variable that was
mistakenly left unset.  and tried to work around an apparent
bug in MsgWaitForMultipleObjects() that prevented the service
from closing down properly.  start/pause/continue/stop
sequence still doesn't shut down correctly.  start/pause/stop
and start/stop work fine.
This commit is contained in:
crs
2002-07-17 17:27:41 +00:00
parent 82cdfb478a
commit 76cc62d133
7 changed files with 108 additions and 96 deletions

View File

@@ -1,6 +1,7 @@
#include "CMSWindowsScreen.h"
#include "CMSWindowsClipboard.h"
#include "CMSWindowsScreenSaver.h"
#include "CPlatform.h"
#include "CClipboard.h"
#include "IMSWindowsScreenEventHandler.h"
#include "IScreenReceiver.h"
@@ -35,6 +36,7 @@ CMSWindowsScreen::CMSWindowsScreen(IScreenReceiver* receiver,
m_class(NULL),
m_icon(NULL),
m_cursor(NULL),
m_is95Family(CPlatform::isWindows95Family()),
m_window(NULL),
m_x(0), m_y(0),
m_w(0), m_h(0),
@@ -206,7 +208,11 @@ CMSWindowsScreen::mainLoop()
void
CMSWindowsScreen::exitMainLoop()
{
// post an arbitrary message after the quit because
// MsgWaitForMultipleObjects() is broken and might not wake up if
// just WM_QUIT is in the queue.
PostThreadMessage(m_threadID, WM_QUIT, 0, 0);
PostThreadMessage(m_threadID, WM_APP + 1, 0, 0);
}
void