layout: properly assign workspace and monitor when moving a child to the parent (#10338)

This commit is contained in:
Vaxry
2025-05-08 21:00:28 +02:00
committed by GitHub
parent 53bfb92d65
commit 04c98abd1f
3 changed files with 35 additions and 6 deletions

View File

@@ -1822,3 +1822,24 @@ std::optional<std::string> CWindow::xdgDescription() {
return m_xdgSurface->m_toplevel->m_toplevelDescription;
}
PHLWINDOW CWindow::parent() {
if (m_isX11) {
auto t = x11TransientFor();
// don't return a parent that's not mapped
if (!validMapped(t))
return nullptr;
return t;
}
if (!m_xdgSurface || !m_xdgSurface->m_toplevel || !m_xdgSurface->m_toplevel->m_parent)
return nullptr;
// don't return a parent that's not mapped
if (!m_xdgSurface->m_toplevel->m_parent->m_window || !validMapped(m_xdgSurface->m_toplevel->m_parent->m_window))
return nullptr;
return m_xdgSurface->m_toplevel->m_parent->m_window.lock();
}