From bc6e2a4231d73d6e037340af9e73f2611649faa8 Mon Sep 17 00:00:00 2001 From: SineStriker <trueful@163.com> Date: ćšć, 09 5æ 2024 01:15:21 +0800 Subject: [PATCH] Optimize event filter forwarding --- src/core/qwkglobal.cpp | 11 ++--------- 1 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/core/qwkglobal.cpp b/src/core/qwkglobal.cpp index 617df8a..aa34606 100644 --- a/src/core/qwkglobal.cpp +++ b/src/core/qwkglobal.cpp @@ -10,17 +10,10 @@ namespace QWK { - class HackedObject : public QObject { - public: - QObjectPrivate *d_func() const { - return static_cast<QObjectPrivate *>(d_ptr.data()); - } - }; - bool forwardObjectEventFilters(QObject *currentFilter, QObject *receiver, QEvent *event) { // https://github.com/qt/qtbase/blob/e26a87f1ecc40bc8c6aa5b889fce67410a57a702/src/corelib/kernel/qcoreapplication.cpp#L1244 // Send the event through the rest event filters - auto d = static_cast<HackedObject *>(receiver)->d_func(); + auto d = QObjectPrivate::get(receiver); bool findCurrent = false; if (receiver != QCoreApplication::instance() && d->extraData) { for (qsizetype i = 0; i < d->extraData->eventFilters.size(); ++i) { @@ -34,7 +27,7 @@ if (!obj) continue; - if (static_cast<HackedObject *>(obj)->d_func()->threadData.loadRelaxed() != + if (QObjectPrivate::get(obj)->threadData.loadRelaxed() != d->threadData.loadRelaxed()) { qWarning( "QCoreApplication: Object event filter cannot be in a different thread."); -- Gitblit v1.9.1