Sine Striker
2023-12-19 718590bf4dec0e8d9e7a75af98568f5eff5f8f9d
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;
    }
@@ -57,9 +78,6 @@
        if (!d->context->setTitleBar(w)) {
            return;
        }
#ifdef Q_OS_MACOS
        d->setupMacOSTitleBar(w);
#endif
        Q_EMIT titleBarWidgetChanged(w);
    }