| | |
| | | |
| | | #include "qwkglobal_p.h" |
| | | #include "systemwindow_p.h" |
| | | |
| | | namespace QWK { |
| | | |
| | | struct NSWindowProxy { |
| | |
| | | |
| | | static inline void releaseWindowProxy(const WId windowId) { |
| | | if (const auto proxy = g_proxyList()->take(windowId)) { |
| | | proxy->setSystemTitleBarVisible(true); |
| | | delete proxy; |
| | | } |
| | | } |
| | |
| | | AbstractWindowContext::virtual_hook(id, data); |
| | | } |
| | | |
| | | void CocoaWindowContext::winIdChanged(QWindow *oldWindow, bool isDestroyed) { |
| | | releaseWindowProxy(windowId); |
| | | void CocoaWindowContext::winIdChanged() { |
| | | // If the original window id is valid, remove all resources related |
| | | if (windowId) { |
| | | releaseWindowProxy(windowId); |
| | | windowId = 0; |
| | | cocoaWindowEventFilter.reset(); |
| | | } |
| | | |
| | | if (!m_windowHandle) { |
| | | return; |
| | | } |
| | | |
| | | // Allocate new resources |
| | | windowId = m_windowHandle->winId(); |
| | | ensureWindowProxy(windowId)->setSystemTitleBarVisible(false); |
| | | cocoaWindowEventFilter = std::make_unique<CocoaWindowEventFilter>(this, this); |