diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 9659483f..77ec29cd 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -32,6 +32,7 @@ void Events::listener_mapWindow(void* owner, void* data) { PWINDOW->m_bIsMapped = true; PWINDOW->m_bReadyToDelete = false; PWINDOW->m_bFadingOut = false; + PWINDOW->m_szTitle = g_pXWaylandManager->getTitle(PWINDOW); // checks if the window wants borders and sets the appriopriate flag g_pXWaylandManager->checkBorders(PWINDOW); @@ -124,9 +125,6 @@ void Events::listener_mapWindow(void* owner, void* data) { // Set the pseudo size here too so that it doesnt end up being 0x0 PWINDOW->m_vPseudoSize = PWINDOW->m_vEffectiveSize - Vector2D(10,10); } - - - PWINDOW->m_szTitle = g_pXWaylandManager->getTitle(PWINDOW); g_pCompositor->focusWindow(PWINDOW); diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 189089cd..1c242a78 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -148,6 +148,10 @@ bool CHyprXWaylandManager::shouldBeFloated(CWindow* pWindow) { return true; } + if (pWindow->m_iX11Type == 2) { + return true; // override_redirect + } + const auto SIZEHINTS = pWindow->m_uSurface.xwayland->size_hints; if (SIZEHINTS && (pWindow->m_uSurface.xwayland->parent || ((SIZEHINTS->min_width == SIZEHINTS->max_width) && (SIZEHINTS->min_height == SIZEHINTS->max_height)))) return true; @@ -185,7 +189,7 @@ void CHyprXWaylandManager::checkBorders(CWindow* pWindow) { } } - if (pWindow->m_uSurface.xwayland->parent) { + if (pWindow->m_uSurface.xwayland->parent || pWindow->m_iX11Type == 2) { pWindow->m_bX11DoesntWantBorders = true; } }