diff options
author | vaxerski <[email protected]> | 2023-02-03 21:09:11 +0000 |
---|---|---|
committer | vaxerski <[email protected]> | 2023-02-03 21:21:19 +0000 |
commit | 668842124067f9b6513edf1c28478bec12d709a0 (patch) | |
tree | 572906216dda84545697540adeb2573dddcea706 | |
parent | 3e6601fa2989d750135d218c1fea3a13ddeae5c3 (diff) | |
download | Hyprland-668842124067f9b6513edf1c28478bec12d709a0.tar.gz Hyprland-668842124067f9b6513edf1c28478bec12d709a0.zip |
minor adjustments to xwayland positioning
-rw-r--r-- | src/layout/IHyprLayout.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp index 1cddcdaa..23a10a26 100644 --- a/src/layout/IHyprLayout.cpp +++ b/src/layout/IHyprLayout.cpp @@ -63,8 +63,17 @@ void IHyprLayout::onWindowCreatedFloating(CWindow* pWindow) { pWindow->m_vRealSize = PMONITOR->vecSize / 2.f; } - pWindow->m_vRealPosition = Vector2D(PMONITOR->vecPosition.x + (PMONITOR->vecSize.x - pWindow->m_vRealSize.goalv().x) / 2.f, - PMONITOR->vecPosition.y + (PMONITOR->vecSize.y - pWindow->m_vRealSize.goalv().y) / 2.f); + if (pWindow->m_bIsX11 && pWindow->m_uSurface.xwayland->override_redirect) { + + if (pWindow->m_uSurface.xwayland->x != 0 && pWindow->m_uSurface.xwayland->y != 0) + pWindow->m_vRealPosition = Vector2D{pWindow->m_uSurface.xwayland->x, pWindow->m_uSurface.xwayland->y}; + else + pWindow->m_vRealPosition = Vector2D(PMONITOR->vecPosition.x + (PMONITOR->vecSize.x - pWindow->m_vRealSize.goalv().x) / 2.f, + PMONITOR->vecPosition.y + (PMONITOR->vecSize.y - pWindow->m_vRealSize.goalv().y) / 2.f); + } else { + pWindow->m_vRealPosition = Vector2D(PMONITOR->vecPosition.x + (PMONITOR->vecSize.x - pWindow->m_vRealSize.goalv().x) / 2.f, + PMONITOR->vecPosition.y + (PMONITOR->vecSize.y - pWindow->m_vRealSize.goalv().y) / 2.f); + } } else { // we respect the size. pWindow->m_vRealSize = Vector2D(desiredGeometry.width, desiredGeometry.height); @@ -108,7 +117,7 @@ void IHyprLayout::onWindowCreatedFloating(CWindow* pWindow) { } } - if (pWindow->m_bX11DoesntWantBorders) { + if (pWindow->m_bX11DoesntWantBorders || (pWindow->m_bIsX11 && pWindow->m_uSurface.xwayland->override_redirect)) { pWindow->m_vRealPosition.setValue(pWindow->m_vRealPosition.goalv()); pWindow->m_vRealSize.setValue(pWindow->m_vRealSize.goalv()); } |