summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2018-09-05 17:21:24 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2018-09-06 12:42:17 +0000
commitd115196010efb4ac55be998ffe7ed00db0cbffaf (patch)
treeb37a67804fbd75f6be5467fa89117dfbbdc44e33 /src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
parent5ed48895b6974814fb7ac7ec42a6fc8ee935be44 (diff)
macOS: Use single call site for timer processing in event dispatcher
Makes it easier to add shared logic later on. The call to maybeCancelWaitForMoreEvents() has been left out as it was not called from all call sites. Change-Id: Ibcb10ab4d788de80850b0e5a4286b4d49091cddb Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
index 2a41498564..b0f2b6d940 100644
--- a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
+++ b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
@@ -120,11 +120,17 @@ void QCocoaEventDispatcherPrivate::runLoopTimerCallback(CFRunLoopTimerRef, void
void QCocoaEventDispatcherPrivate::activateTimersSourceCallback(void *info)
{
QCocoaEventDispatcherPrivate *d = static_cast<QCocoaEventDispatcherPrivate *>(info);
- (void) d->timerInfoList.activateTimers();
- d->maybeStartCFRunLoopTimer();
+ d->processTimers();
d->maybeCancelWaitForMoreEvents();
}
+bool QCocoaEventDispatcherPrivate::processTimers()
+{
+ int activated = timerInfoList.activateTimers();
+ maybeStartCFRunLoopTimer();
+ return activated > 0;
+}
+
void QCocoaEventDispatcherPrivate::maybeStartCFRunLoopTimer()
{
if (timerInfoList.isEmpty()) {
@@ -500,10 +506,9 @@ bool QCocoaEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags)
} while (!d->interrupt && event);
if ((d->processEventsFlags & QEventLoop::EventLoopExec) == 0) {
- // when called "manually", always send posted events and timers
+ // When called "manually", always process posted events and timers
d->processPostedEvents();
- retVal = d->timerInfoList.activateTimers() > 0 || retVal;
- d->maybeStartCFRunLoopTimer();
+ retVal = d->processTimers() || retVal;
}
// be sure to return true if the posted event source fired