Revert "Revert using an event object for waking up event loop in wxMSW"
This reverts commitebb3a791b9, effectively reapplying6c40531fb7once again. This breaks wake up when not running our own event loop once again (see #17579), but this will be fixed in the next commit.
This commit is contained in:
@@ -15,9 +15,20 @@ class WXDLLIMPEXP_BASE wxMSWEventLoopBase : public wxEventLoopManual
|
||||
{
|
||||
public:
|
||||
wxMSWEventLoopBase();
|
||||
virtual ~wxMSWEventLoopBase();
|
||||
|
||||
// implement base class pure virtuals
|
||||
virtual bool Pending() const wxOVERRIDE;
|
||||
virtual void WakeUp() wxOVERRIDE;
|
||||
|
||||
#if wxUSE_THREADS
|
||||
// MSW-specific method to wait for the termination of the specified (by its
|
||||
// native handle) thread or any input message arriving (in GUI case).
|
||||
//
|
||||
// Return value is WAIT_OBJECT_0 if the thread terminated, WAIT_OBJECT_0+1
|
||||
// if a message arrived with anything else indicating an error.
|
||||
WXDWORD MSWWaitForThread(WXHANDLE hThread);
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
protected:
|
||||
// get the next message from queue and return true or return false if we
|
||||
@@ -25,8 +36,13 @@ protected:
|
||||
bool GetNextMessage(WXMSG *msg);
|
||||
|
||||
// same as above but with a timeout and return value can be -1 meaning that
|
||||
// time out expired in addition to
|
||||
// time out expired in addition to true/false
|
||||
int GetNextMessageTimeout(WXMSG *msg, unsigned long timeout);
|
||||
|
||||
private:
|
||||
// An auto-reset Win32 event which is signalled when we need to wake up the
|
||||
// main thread waiting in GetNextMessage[Timeout]().
|
||||
WXHANDLE m_heventWake;
|
||||
};
|
||||
|
||||
#if wxUSE_CONSOLE_EVENTLOOP
|
||||
@@ -39,7 +55,6 @@ public:
|
||||
// override/implement base class virtuals
|
||||
virtual bool Dispatch() wxOVERRIDE;
|
||||
virtual int DispatchTimeout(unsigned long timeout) wxOVERRIDE;
|
||||
virtual void WakeUp() wxOVERRIDE;
|
||||
|
||||
// Windows-specific function to process a single message
|
||||
virtual void ProcessMessage(WXMSG *msg);
|
||||
|
||||
Reference in New Issue
Block a user