summaryrefslogtreecommitdiff
path: root/src/Window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.cpp')
-rw-r--r--src/Window.cpp18
1 files changed, 17 insertions, 1 deletions
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;
+}