diff options
| author | UjinT34 <41110182+UjinT34@users.noreply.github.com> | 2026-03-07 16:13:34 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-07 13:13:34 +0000 |
| commit | 966f20d305345b3042dc1d37a1dd8833f3a4783b (patch) | |
| tree | 3e8515b7a0f6fde7bf3137aac7124ae90e5951ec /src/desktop/view/Popup.cpp | |
| parent | 32e75e3e320fb66ab517a378df645f3d29b3a209 (diff) | |
renderer: refactor resources and flags (#13471)
Diffstat (limited to 'src/desktop/view/Popup.cpp')
| -rw-r--r-- | src/desktop/view/Popup.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/desktop/view/Popup.cpp b/src/desktop/view/Popup.cpp index f6f681d5..5faf506c 100644 --- a/src/desktop/view/Popup.cpp +++ b/src/desktop/view/Popup.cpp @@ -171,9 +171,6 @@ void CPopup::onDestroy() { void CPopup::fullyDestroy() { Log::logger->log(Log::DEBUG, "popup {:x} fully destroying", rc<uintptr_t>(this)); - g_pHyprRenderer->makeEGLCurrent(); - std::erase_if(g_pHyprOpenGL->m_popupFramebuffers, [&](const auto& other) { return other.first.expired() || other.first == m_self; }); - std::erase_if(m_parent->m_children, [this](const auto& other) { return other.get() == this; }); } @@ -201,8 +198,11 @@ void CPopup::onMap() { sendScale(); m_wlSurface->resource()->breadthfirst([PMONITOR](SP<CWLSurfaceResource> s, const Vector2D& offset, void* d) { s->enter(PMONITOR->m_self.lock()); }, nullptr); - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + if (mon) + mon->m_blurFBDirty = true; + } m_alpha->setConfig(g_pConfigManager->getAnimationPropertyConfig("fadePopupsIn")); m_alpha->setValueAndWarp(0.F); @@ -253,8 +253,10 @@ void CPopup::onUnmap() { m_subsurfaceHead.reset(); - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + const auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + mon->m_blurFBDirty = true; + } // damage all children breadthfirst( @@ -318,8 +320,10 @@ void CPopup::onCommit(bool ignoreSiblings) { m_requestedReposition = false; - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + const auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + mon->m_blurFBDirty = true; + } } void CPopup::onReposition() { |
