diff options
Diffstat (limited to 'src/corelib/kernel/qcoreapplication.cpp')
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 9f6f2b798e..d67c820bb3 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -789,10 +789,10 @@ bool QCoreApplication::notify(QObject *receiver, QEvent *event) bool QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject *receiver, QEvent *event) { - if (receiver->d_func()->threadData == this->threadData) { + if (receiver->d_func()->threadData == this->threadData && extraData) { // application event filters are only called for objects in the GUI thread - for (int i = 0; i < eventFilters.size(); ++i) { - register QObject *obj = eventFilters.at(i); + for (int i = 0; i < extraData->eventFilters.size(); ++i) { + register QObject *obj = extraData->eventFilters.at(i); if (!obj) continue; if (obj->d_func()->threadData != threadData) { @@ -809,9 +809,9 @@ bool QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject *receiv bool QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *receiver, QEvent *event) { Q_Q(QCoreApplication); - if (receiver != q) { - for (int i = 0; i < receiver->d_func()->eventFilters.size(); ++i) { - register QObject *obj = receiver->d_func()->eventFilters.at(i); + if (receiver != q && receiver->d_func()->extraData) { + for (int i = 0; i < receiver->d_func()->extraData->eventFilters.size(); ++i) { + register QObject *obj = receiver->d_func()->extraData->eventFilters.at(i); if (!obj) continue; if (obj->d_func()->threadData != receiver->d_func()->threadData) { |