summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qeventdispatcher_unix.cpp
diff options
context:
space:
mode:
authorMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-08 07:06:17 (GMT)
committerMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-08 07:06:17 (GMT)
commit75fc8ab96ee142ade5362eeaa94ce7e47ebcb579 (patch)
tree36a8c57866582eeff875615c0aeb1a0f148ba1c3 /src/corelib/kernel/qeventdispatcher_unix.cpp
parent93ea4a9cd6336de6e2a63b1ca075a7fdb835cfa7 (diff)
parent23ae8b6badfd688f962590268a6147771d27266c (diff)
downloadQt-75fc8ab96ee142ade5362eeaa94ce7e47ebcb579.zip
Qt-75fc8ab96ee142ade5362eeaa94ce7e47ebcb579.tar.gz
Qt-75fc8ab96ee142ade5362eeaa94ce7e47ebcb579.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into softkeys
Diffstat (limited to 'src/corelib/kernel/qeventdispatcher_unix.cpp')
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp
index 6aa3b56..f7293d4 100644
--- a/src/corelib/kernel/qeventdispatcher_unix.cpp
+++ b/src/corelib/kernel/qeventdispatcher_unix.cpp
@@ -420,10 +420,18 @@ bool QTimerInfoList::timerWait(timeval &tm)
timeval currentTime = updateCurrentTime();
repairTimersIfNeeded();
- if (isEmpty())
- return false;
+ // Find first waiting timer not already active
+ QTimerInfo *t = 0;
+ for (QTimerInfoList::const_iterator it = constBegin(); it != constEnd(); ++it) {
+ if (!(*it)->inTimerEvent) {
+ t = *it;
+ break;
+ }
+ }
+
+ if (!t)
+ return false;
- QTimerInfo *t = first(); // first waiting timer
if (currentTime < t->timeout) {
// time to wait
tm = t->timeout - currentTime;