Made wxGTK's wxEventLoop::IsRunning a little more consistent with
wxMSW's and uninstall the idle handled like wxYield does so Pending can eventually return false. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
ba3834927e
commit
9213ca5d47
@ -88,7 +88,7 @@ public:
|
||||
virtual void Exit(int rc = 0);
|
||||
virtual bool Pending() const;
|
||||
virtual bool Dispatch();
|
||||
virtual bool IsRunning() const { return m_impl != NULL; }
|
||||
virtual bool IsRunning() const { return GetActive() == this; }
|
||||
|
||||
protected:
|
||||
// the pointer to the port specific implementation class
|
||||
|
@ -31,6 +31,7 @@
|
||||
#ifndef WX_PRECOMP
|
||||
#endif //WX_PRECOMP
|
||||
|
||||
#include "wx/app.h"
|
||||
#include "wx/evtloop.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
@ -103,9 +104,20 @@ void wxEventLoop::Exit(int rc)
|
||||
// wxEventLoop message processing dispatching
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
extern bool g_isIdle;
|
||||
|
||||
bool wxEventLoop::Pending() const
|
||||
{
|
||||
return gtk_events_pending() > 0;
|
||||
if (wxTheApp && !g_isIdle)
|
||||
{
|
||||
// We need to remove idle callbacks or gtk_events_pending will
|
||||
// never return false.
|
||||
gtk_idle_remove( wxTheApp->m_idleTag );
|
||||
wxTheApp->m_idleTag = 0;
|
||||
g_isIdle = TRUE;
|
||||
}
|
||||
|
||||
return gtk_events_pending();
|
||||
}
|
||||
|
||||
bool wxEventLoop::Dispatch()
|
||||
|
@ -31,6 +31,7 @@
|
||||
#ifndef WX_PRECOMP
|
||||
#endif //WX_PRECOMP
|
||||
|
||||
#include "wx/app.h"
|
||||
#include "wx/evtloop.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
@ -103,9 +104,20 @@ void wxEventLoop::Exit(int rc)
|
||||
// wxEventLoop message processing dispatching
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
extern bool g_isIdle;
|
||||
|
||||
bool wxEventLoop::Pending() const
|
||||
{
|
||||
return gtk_events_pending() > 0;
|
||||
if (wxTheApp && !g_isIdle)
|
||||
{
|
||||
// We need to remove idle callbacks or gtk_events_pending will
|
||||
// never return false.
|
||||
gtk_idle_remove( wxTheApp->m_idleTag );
|
||||
wxTheApp->m_idleTag = 0;
|
||||
g_isIdle = TRUE;
|
||||
}
|
||||
|
||||
return gtk_events_pending();
|
||||
}
|
||||
|
||||
bool wxEventLoop::Dispatch()
|
||||
|
Loading…
Reference in New Issue
Block a user