renderer: don't render unmapped popups

fixes #8485
This commit is contained in:
Vaxry 2024-11-17 16:16:49 +00:00
parent 0ddbd1c3a4
commit fb91c2550f
2 changed files with 4 additions and 4 deletions

View file

@ -41,6 +41,7 @@ class CPopup {
// //
SP<CWLSurface> m_pWLSurface; SP<CWLSurface> m_pWLSurface;
bool m_bMapped = false;
private: private:
// T1 owners, each popup has to have one of these // T1 owners, each popup has to have one of these
@ -57,8 +58,7 @@ class CPopup {
bool m_bRequestedReposition = false; bool m_bRequestedReposition = false;
bool m_bInert = false; bool m_bInert = false;
bool m_bMapped = false;
// //
std::vector<SP<CPopup>> m_vChildren; std::vector<SP<CPopup>> m_vChildren;

View file

@ -732,7 +732,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, timespe
pWindow->m_pPopupHead->breadthfirst( pWindow->m_pPopupHead->breadthfirst(
[](CPopup* popup, void* data) { [](CPopup* popup, void* data) {
if (!popup->m_pWLSurface || !popup->m_pWLSurface->resource()) if (!popup->m_pWLSurface || !popup->m_pWLSurface->resource() || !popup->m_bMapped)
return; return;
auto pos = popup->coordsRelativeToParent(); auto pos = popup->coordsRelativeToParent();
auto rd = (SRenderData*)data; auto rd = (SRenderData*)data;
@ -822,7 +822,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, timespec* tim
if (popups) { if (popups) {
pLayer->popupHead->breadthfirst( pLayer->popupHead->breadthfirst(
[](CPopup* popup, void* data) { [](CPopup* popup, void* data) {
if (!popup->m_pWLSurface || !popup->m_pWLSurface->resource()) if (!popup->m_pWLSurface || !popup->m_pWLSurface->resource() || !popup->m_bMapped)
return; return;
Vector2D pos = popup->coordsRelativeToParent(); Vector2D pos = popup->coordsRelativeToParent();