diff --git a/src/plugins/platforms/ios/qioseventdispatcher.h b/src/plugins/platforms/ios/qioseventdispatcher.h index 3a6b67f72eb4e7c95692a9c4c1d3ec0267bc4ceb..fdaa7e68fea29c8d038b62f9b7bddec933e029a3 100644 --- a/src/plugins/platforms/ios/qioseventdispatcher.h +++ b/src/plugins/platforms/ios/qioseventdispatcher.h @@ -52,7 +52,7 @@ public: void interruptEventLoopExec(); private: - uint m_processEventCallsAfterExec; + uint m_processEventLevel; RunLoopObserver<QIOSEventDispatcher> m_runLoopExitObserver; }; diff --git a/src/plugins/platforms/ios/qioseventdispatcher.mm b/src/plugins/platforms/ios/qioseventdispatcher.mm index f4567f36f4f5c6d15e18346b5f4a7a58f3a8b394..fc12e83a8195a337988bdef7940a687e93587cbf 100644 --- a/src/plugins/platforms/ios/qioseventdispatcher.mm +++ b/src/plugins/platforms/ios/qioseventdispatcher.mm @@ -422,7 +422,7 @@ QT_USE_NAMESPACE QIOSEventDispatcher::QIOSEventDispatcher(QObject *parent) : QEventDispatcherCoreFoundation(parent) - , m_processEventCallsAfterExec(0) + , m_processEventLevel(0) , m_runLoopExitObserver(this, &QIOSEventDispatcher::handleRunLoopExit, kCFRunLoopExit) { } @@ -439,8 +439,8 @@ bool __attribute__((returns_twice)) QIOSEventDispatcher::processEvents(QEventLoo return false; } - if (!m_processEventCallsAfterExec && (flags & QEventLoop::EventLoopExec)) { - ++m_processEventCallsAfterExec; + if (!m_processEventLevel && (flags & QEventLoop::EventLoopExec)) { + ++m_processEventLevel; m_runLoopExitObserver.addToMode(kCFRunLoopCommonModes); @@ -465,13 +465,9 @@ bool __attribute__((returns_twice)) QIOSEventDispatcher::processEvents(QEventLoo Q_UNREACHABLE(); } - if (m_processEventCallsAfterExec) - ++m_processEventCallsAfterExec; - + ++m_processEventLevel; bool processedEvents = QEventDispatcherCoreFoundation::processEvents(flags); - - if (m_processEventCallsAfterExec) - --m_processEventCallsAfterExec; + --m_processEventLevel; return processedEvents; } @@ -481,7 +477,7 @@ void QIOSEventDispatcher::handleRunLoopExit(CFRunLoopActivity activity) Q_UNUSED(activity); Q_ASSERT(activity == kCFRunLoopExit); - if (m_processEventCallsAfterExec == 1 && !QThreadData::current()->eventLoops.top()->isRunning()) { + if (m_processEventLevel == 1 && !QThreadData::current()->eventLoops.top()->isRunning()) { qEventDispatcherDebug() << "Root runloop level exited"; interruptEventLoopExec(); } @@ -489,9 +485,9 @@ void QIOSEventDispatcher::handleRunLoopExit(CFRunLoopActivity activity) void QIOSEventDispatcher::interruptEventLoopExec() { - Q_ASSERT(m_processEventCallsAfterExec == 1); + Q_ASSERT(m_processEventLevel == 1); - --m_processEventCallsAfterExec; + --m_processEventLevel; m_runLoopExitObserver.removeFromMode(kCFRunLoopCommonModes);