diff options
author | Richard Moe Gustavsen <richard.gustavsen@nokia.com> | 2009-10-09 12:38:59 (GMT) |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@nokia.com> | 2009-10-13 12:04:53 (GMT) |
commit | 87a065002f9bc78b58c6f699ef52dda08045ad7c (patch) | |
tree | a6848af2c43217f2f4527dfa18de7ab8b3248062 /src/gui | |
parent | 5271d92d814e849c83d11069c322824e16db9943 (diff) | |
download | Qt-87a065002f9bc78b58c6f699ef52dda08045ad7c.zip Qt-87a065002f9bc78b58c6f699ef52dda08045ad7c.tar.gz Qt-87a065002f9bc78b58c6f699ef52dda08045ad7c.tar.bz2 |
Carbon: QApplication auto test shows bug in event dispatcher
The reason for the bug is that we call _quit_ on the eventloop
just _after_ posting the deffered delete event (from inside
deleteLater function, ref the test where it fails,
tst_qapplication.cpp:1242). And the point is, even if the loop
level tells us that we _can_ delete the object in this case, the
'quit' tells us that we should not process _any_ events (until we
get a call to processEvents again).
So this patch makes sure that we don't call sendPostedEvents from
the eventDispatcher if it is interruped.
Rev-By: brad
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qeventdispatcher_mac.mm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm index 7152705..49c851b 100644 --- a/src/gui/kernel/qeventdispatcher_mac.mm +++ b/src/gui/kernel/qeventdispatcher_mac.mm @@ -942,7 +942,7 @@ Boolean QEventDispatcherMacPrivate::postedEventSourceEqualCallback(const void *i inline static void processPostedEvents(QEventDispatcherMacPrivate *const d, const bool blockSendPostedEvents) { - if (blockSendPostedEvents) { + if (blockSendPostedEvents || d->interrupt) { CFRunLoopSourceSignal(d->postedEventsSource); } else { if (!d->threadData->canWait || (d->serialNumber != d->lastSerial)) { |