SineStriker
2023-12-20 3871bfc5d3aff45e498fa2944c27e6eb5d146c8e
src/widgets/widgetwindowagent.cpp
@@ -9,6 +9,27 @@
namespace QWK {
    class WidgetWinIdChangeEventFilter : public QObject {
    public:
        explicit WidgetWinIdChangeEventFilter(QWidget *widget, AbstractWindowContext *ctx)
            : QObject(ctx), widget(widget), ctx(ctx) {
            widget->installEventFilter(this);
        }
    protected:
        bool eventFilter(QObject *obj, QEvent *event) override {
            Q_UNUSED(obj)
            if (event->type() == QEvent::WinIdChange) {
                ctx->notifyWinIdChange();
            }
            return false;
        }
    protected:
        QWidget *widget;
        AbstractWindowContext *ctx;
    };
    WidgetWindowAgentPrivate::WidgetWindowAgentPrivate() = default;
    WidgetWindowAgentPrivate::~WidgetWindowAgentPrivate() = default;
@@ -36,14 +57,14 @@
        w->setAttribute(Qt::WA_DontCreateNativeAncestors);
        w->setAttribute(Qt::WA_NativeWindow);
        if (!d->setup(w, new WidgetItemDelegate())) {
            return false;
        }
        d->setup(w, new WidgetItemDelegate());
        d->hostWidget = w;
#ifdef Q_OS_WINDOWS
        d->setupWindows10BorderWorkaround();
#endif
        std::ignore = new WidgetWinIdChangeEventFilter(w, d->context.get());
        return true;
    }