From e9f790d3533ebaee1f782e91b6e13b2c6375c86a Mon Sep 17 00:00:00 2001 From: SineStriker <55847490+SineStriker@users.noreply.github.com> Date: 周二, 11 2月 2025 23:06:01 +0800 Subject: [PATCH] AWC: fix window attribute handler --- src/core/qwkglobal.cpp | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/core/qwkglobal.cpp b/src/core/qwkglobal.cpp index 617df8a..ee33221 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,10 +27,14 @@ if (!obj) continue; - if (static_cast<HackedObject *>(obj)->d_func()->threadData.loadRelaxed() != +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + if (QObjectPrivate::get(obj)->threadData.loadRelaxed() != d->threadData.loadRelaxed()) { - qWarning( - "QCoreApplication: Object event filter cannot be in a different thread."); +#else + if (QObjectPrivate::get(obj)->threadData != d->threadData) { +#endif + qWarning("QCoreApplication: Object event filter cannot be in a different " + "thread."); continue; } if (obj->eventFilter(receiver, event)) @@ -46,5 +43,4 @@ } return false; } - } -- Gitblit v1.9.1