Zhao Yuhang
2023-12-18 44fee9aa1e3087635d1394612c6f6ceab44ba7b0
src/core/contexts/cocoawindowcontext.mm
@@ -217,6 +217,12 @@
        return it.value();
    }
    static inline void releaseWindowProxy(const WId windowId) {
        if (const auto proxy = g_proxyList()->take(windowId)) {
            delete proxy;
        }
    }
    class CocoaWindowEventFilter : public QObject {
    public:
        explicit CocoaWindowEventFilter(AbstractWindowContext *context, QObject *parent = nullptr);
@@ -355,9 +361,7 @@
    }
    CocoaWindowContext::~CocoaWindowContext() {
        if (const auto proxy = g_proxyList()->take(windowId)) {
            delete proxy;
        }
        releaseWindowProxy(windowId);
    }
    QString CocoaWindowContext::key() const {
@@ -378,11 +382,15 @@
        AbstractWindowContext::virtual_hook(id, data);
    }
    void CocoaWindowContext::winIdChanged(QWindow *oldWindow, bool destroyed) {
    void CocoaWindowContext::winIdChanged(QWindow *oldWindow) {
        releaseWindowProxy(windowId);
        if (!m_windowHandle) {
            return;
        }
        windowId = m_windowHandle->winId();
        ensureWindowProxy(windowId)->setSystemTitleBarVisible(false);
        cocoaWindowEventFilter = std::make_unique<CocoaWindowEventFilter>(this, this);
        return true;
    }
}