window: unassign surface on unmap

This commit is contained in:
vaxerski 2023-03-23 00:39:32 +00:00
parent 0268bb9888
commit a3fda12ba1
3 changed files with 7 additions and 0 deletions

View file

@ -336,6 +336,8 @@ void CWindow::onUnmap() {
m_vRealSize.setCallbackOnBegin(nullptr); m_vRealSize.setCallbackOnBegin(nullptr);
std::erase_if(g_pCompositor->m_vWindowFocusHistory, [&](const auto& other) { return other == this; }); std::erase_if(g_pCompositor->m_vWindowFocusHistory, [&](const auto& other) { return other == this; });
m_pWLSurface.unassign();
} }
void CWindow::onMap() { void CWindow::onMap() {

View file

@ -11,6 +11,10 @@ void CWLSurface::assign(wlr_surface* pSurface) {
init(); init();
} }
void CWLSurface::unassign() {
destroy();
}
CWLSurface::~CWLSurface() { CWLSurface::~CWLSurface() {
destroy(); destroy();
} }

View file

@ -9,6 +9,7 @@ class CWLSurface {
~CWLSurface(); ~CWLSurface();
void assign(wlr_surface* pSurface); void assign(wlr_surface* pSurface);
void unassign();
CWLSurface(const CWLSurface&) = delete; CWLSurface(const CWLSurface&) = delete;
CWLSurface(CWLSurface&&) = delete; CWLSurface(CWLSurface&&) = delete;