diff options
author | mread <qt-info@nokia.com> | 2011-05-26 13:11:18 (GMT) |
---|---|---|
committer | mread <qt-info@nokia.com> | 2011-06-01 12:04:33 (GMT) |
commit | e31bcd340a24a8698ee4dc85dd2ccb2bd6ab10e7 (patch) | |
tree | 972623fe792c3e48a0bf4d62d06b1e7302ba0f9a /src/gui/kernel | |
parent | 8c3a4568dcbb75c36ea3c22ced4d10d4b3522d9f (diff) | |
download | Qt-e31bcd340a24a8698ee4dc85dd2ccb2bd6ab10e7.zip Qt-e31bcd340a24a8698ee4dc85dd2ccb2bd6ab10e7.tar.gz Qt-e31bcd340a24a8698ee4dc85dd2ccb2bd6ab10e7.tar.bz2 |
Schedule Symbian active objects with a round robin scheduler
Each call to QEventDispatcherSymbian::processEvents allows
pre-existing active objects with priority >=
CActive::EPriorityStandard to run once. Active objects with lower
priorities can only run if no higher priority active object has run.
Task-number: QTBUG-15019
Reviewed-by: Tom Sutcliffe
Reviewed-by: axis
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qeventdispatcher_s60.cpp | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/src/gui/kernel/qeventdispatcher_s60.cpp b/src/gui/kernel/qeventdispatcher_s60.cpp index 3f20c08..fd2280e 100644 --- a/src/gui/kernel/qeventdispatcher_s60.cpp +++ b/src/gui/kernel/qeventdispatcher_s60.cpp @@ -58,47 +58,17 @@ QtEikonEnv::~QtEikonEnv() void QtEikonEnv::RunL() { - QEventDispatcherS60 *dispatcher = qobject_cast<QEventDispatcherS60 *>(QAbstractEventDispatcher::instance()); - if (!dispatcher) { - CEikonEnv::RunL(); - return; - } - - if (m_lastIterationCount != dispatcher->iterationCount()) { - m_hasAlreadyRun = false; - m_lastIterationCount = dispatcher->iterationCount(); - } - - if (m_hasAlreadyRun) { - // Fool the active scheduler into believing we are still waiting for events. - // The window server thinks we are not, however. - m_savedStatusCode = iStatus.Int(); - iStatus = KRequestPending; - SetActive(); - dispatcher->queueDeferredActiveObjectsCompletion(); - } else { - m_hasAlreadyRun = true; - CEikonEnv::RunL(); - } + CEikonEnv::RunL(); + return; } void QtEikonEnv::DoCancel() { - complete(); - CEikonEnv::DoCancel(); } void QtEikonEnv::complete() { - if (m_hasAlreadyRun) { - if (m_savedStatusCode != KRequestPending) { - TRequestStatus *status = &iStatus; - QEventDispatcherSymbian::RequestComplete(status, m_savedStatusCode); - m_savedStatusCode = KRequestPending; - } - m_hasAlreadyRun = false; - } } QEventDispatcherS60::QEventDispatcherS60(QObject *parent) |