projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update KDE guide link; added to the list of the 'Changes which are compatible' the...
[wxWidgets.git]
/
src
/
unix
/
evtloopunix.cpp
diff --git
a/src/unix/evtloopunix.cpp
b/src/unix/evtloopunix.cpp
index 7f27c1c2a216acba8033c177be65510ad074e52d..fbaa4c775a5f3811a3e701b50297dbb4fd8d8c79 100644
(file)
--- a/
src/unix/evtloopunix.cpp
+++ b/
src/unix/evtloopunix.cpp
@@
-85,7
+85,7
@@
void wxConsoleEventLoop::PipeIOHandler::WakeUp()
void wxConsoleEventLoop::PipeIOHandler::OnReadWaiting()
{
// got wakeup from child thread: read all data available in pipe just to
void wxConsoleEventLoop::PipeIOHandler::OnReadWaiting()
{
// got wakeup from child thread: read all data available in pipe just to
- // make it empty (eve
v
n though we write one byte at a time from WakeUp(),
+ // make it empty (even though we write one byte at a time from WakeUp(),
// it could have been called several times)
char buf[4];
for ( ;; )
// it could have been called several times)
char buf[4];
for ( ;; )
@@
-107,7
+107,9
@@
void wxConsoleEventLoop::PipeIOHandler::OnReadWaiting()
}
}
}
}
- wxTheApp->ProcessPendingEvents();
+ // writing to the wake up pipe will make wxConsoleEventLoop return from
+ // wxFDIODispatcher::Dispatch() it might be currently blocking in, nothing
+ // else needs to be done
}
// ===========================================================================
}
// ===========================================================================
@@
-144,7
+146,17
@@
wxConsoleEventLoop::wxConsoleEventLoop()
bool wxConsoleEventLoop::Pending() const
{
bool wxConsoleEventLoop::Pending() const
{
- return wxTheApp->HasPendingEvents();
+ if ( m_dispatcher->HasPending() )
+ return true;
+
+#if wxUSE_TIMER
+ wxUsecClock_t nextTimer;
+ if ( wxTimerScheduler::Get().GetNext(&nextTimer) &&
+ !wxMilliClockToLong(nextTimer) )
+ return true;
+#endif // wxUSE_TIMER
+
+ return false;
}
bool wxConsoleEventLoop::Dispatch()
}
bool wxConsoleEventLoop::Dispatch()
@@
-167,15
+179,13
@@
int wxConsoleEventLoop::DispatchTimeout(unsigned long timeout)
}
#endif // wxUSE_TIMER
}
#endif // wxUSE_TIMER
- bool hadEvent = m_dispatcher->Dispatch(timeout);
+ bool hadEvent = m_dispatcher->Dispatch(timeout)
> 0
;
#if wxUSE_TIMER
if ( wxTimerScheduler::Get().NotifyExpired() )
hadEvent = true;
#endif // wxUSE_TIMER
#if wxUSE_TIMER
if ( wxTimerScheduler::Get().NotifyExpired() )
hadEvent = true;
#endif // wxUSE_TIMER
- wxTheApp->ProcessPendingEvents();
-
return hadEvent ? 1 : -1;
}
return hadEvent ? 1 : -1;
}