diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-10-17 11:18:45 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-10-17 11:18:45 +0100 |
| commit | da4cfb9c32fecf2e5d2fa065c9e180a2bdec76a3 (patch) | |
| tree | 81fe97e46390aa9f4603289829331506d7d2bf11 /src/managers/XWaylandManager.cpp | |
| parent | 58375bc87a189c915d12ad93d202462427e239ac (diff) | |
use size hints when available in xwayland default geom
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
| -rw-r--r-- | src/managers/XWaylandManager.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 6d8b24fe..ffddfd34 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -71,10 +71,19 @@ void CHyprXWaylandManager::activateWindow(CWindow* pWindow, bool activate) { void CHyprXWaylandManager::getGeometryForWindow(CWindow* pWindow, wlr_box* pbox) { if (pWindow->m_bIsX11) { - pbox->x = pWindow->m_uSurface.xwayland->x; - pbox->y = pWindow->m_uSurface.xwayland->y; - pbox->width = pWindow->m_uSurface.xwayland->width; - pbox->height = pWindow->m_uSurface.xwayland->height; + const auto SIZEHINTS = pWindow->m_uSurface.xwayland->size_hints; + + if (SIZEHINTS) { + pbox->x = SIZEHINTS->x; + pbox->y = SIZEHINTS->y; + pbox->width = SIZEHINTS->width; + pbox->height = SIZEHINTS->height; + } else { + pbox->x = pWindow->m_uSurface.xwayland->x; + pbox->y = pWindow->m_uSurface.xwayland->y; + pbox->width = pWindow->m_uSurface.xwayland->width; + pbox->height = pWindow->m_uSurface.xwayland->height; + } } else { wlr_xdg_surface_get_geometry(pWindow->m_uSurface.xdg, pbox); } |
