diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-03-15 15:55:24 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-03-15 15:55:30 +0000 |
| commit | bb933dcf04ff1daafbc9681c87b87d7e907ae7bd (patch) | |
| tree | 2ad248120a02955d085e47c9df417985affadd30 /src/desktop/Popup.cpp | |
| parent | bc15a8f60028539690cccdb78eed7fc9175fe792 (diff) | |
popup: avoid damage loops with commits
fixes #5118
Diffstat (limited to 'src/desktop/Popup.cpp')
| -rw-r--r-- | src/desktop/Popup.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/desktop/Popup.cpp b/src/desktop/Popup.cpp index d5599c65..98d5881a 100644 --- a/src/desktop/Popup.cpp +++ b/src/desktop/Popup.cpp @@ -133,7 +133,7 @@ void CPopup::onUnmap() { g_pInputManager->simulateMouseMovement(); } -void CPopup::onCommit() { +void CPopup::onCommit(bool ignoreSiblings) { if (m_pWLR->base->initial_commit) { wlr_xdg_surface_schedule_configure(m_pWLR->base); return; @@ -152,7 +152,8 @@ void CPopup::onCommit() { m_vLastPos = COORDSLOCAL; } - m_pSubsurfaceHead->recheckDamageForSubsurfaces(); + if (!ignoreSiblings) + m_pSubsurfaceHead->recheckDamageForSubsurfaces(); g_pHyprRenderer->damageSurface(m_sWLSurface.wlr(), COORDS.x, COORDS.y); @@ -227,7 +228,7 @@ void CPopup::recheckTree() { void CPopup::recheckChildrenRecursive() { for (auto& c : m_vChildren) { - c->onCommit(); + c->onCommit(true); c->recheckChildrenRecursive(); } } |
