diff options
author | John Stanley <jpsinthemix@verizon.net> | 2012-02-10 16:34:29 -0500 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-11 01:19:49 +0100 |
commit | 4ef2988aedff9d1b36fd366675e137fc606e8ddb (patch) | |
tree | 335e40b4912ec3597fba03e8dd606c0ff2257238 /src/corelib | |
parent | 8723c2c90d8a30f2a593687c32e5b3063c8e213b (diff) |
Raise loopLevel for deleteLater in event filters
Change-Id: Ibd0cd2a2efbcb13a54fe8ba055e7243c0c01b26e
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qabstracteventdispatcher.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 0348faf1f2..3075eab753 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -413,8 +413,12 @@ QAbstractEventDispatcher::EventFilter QAbstractEventDispatcher::setEventFilter(E bool QAbstractEventDispatcher::filterEvent(void *message) { Q_D(QAbstractEventDispatcher); - if (d->event_filter) + if (d->event_filter) { + // Raise the loopLevel so that deleteLater() calls in or triggered + // by event_filter() will be processed from the main event loop. + QScopedLoopLevelCounter loopLevelCounter(d->threadData); return d->event_filter(message); + } return false; } |