Revert "Revert using an event object for waking up event loop in wxMSW"
This reverts commitebb3a791b9
, effectively reapplying6c40531fb7
once 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