summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.cpp6
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;
}