SineStriker
2025-05-19 ac1a62b2a76e4d15e412b9579b80da2dafbc6d6a
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))