From 5da114477fdb1c806f5ad6f6fbb22903481f24c1 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 28 Aug 2022 19:47:06 +0200 Subject: move X11 transients to top on parent top --- src/Window.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/Window.cpp') diff --git a/src/Window.cpp b/src/Window.cpp index f6bdf7dc..d5b24841 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -216,4 +216,20 @@ void CWindow::moveToWorkspace(int workspaceID) { g_pEventManager->postEvent(SHyprIPCEvent{"movewindow", getFormat("%x,%s", this, PWORKSPACE->m_szName.c_str())}); } } -} \ No newline at end of file +} + +CWindow* CWindow::X11TransientFor() { + if (!m_bIsX11) + return nullptr; + + if (!m_uSurface.xwayland->parent) + return nullptr; + + auto PPARENT = g_pCompositor->getWindowFromSurface(m_uSurface.xwayland->parent->surface); + + while (PPARENT->m_uSurface.xwayland->parent) { + PPARENT = g_pCompositor->getWindowFromSurface(PPARENT->m_uSurface.xwayland->parent->surface); + } + + return PPARENT; +} -- cgit v1.2.3