summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@nokia.com>2009-10-09 12:38:59 (GMT)
committerRichard Moe Gustavsen <richard.gustavsen@nokia.com>2009-10-13 12:04:53 (GMT)
commit87a065002f9bc78b58c6f699ef52dda08045ad7c (patch)
treea6848af2c43217f2f4527dfa18de7ab8b3248062 /src/gui
parent5271d92d814e849c83d11069c322824e16db9943 (diff)
downloadQt-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.mm2
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)) {