summaryrefslogtreecommitdiff
path: root/src/desktop/view/Popup.cpp
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-03-07 16:13:34 +0300
committerGitHub <noreply@github.com>2026-03-07 13:13:34 +0000
commit966f20d305345b3042dc1d37a1dd8833f3a4783b (patch)
tree3e8515b7a0f6fde7bf3137aac7124ae90e5951ec /src/desktop/view/Popup.cpp
parent32e75e3e320fb66ab517a378df645f3d29b3a209 (diff)
renderer: refactor resources and flags (#13471)
Diffstat (limited to 'src/desktop/view/Popup.cpp')
-rw-r--r--src/desktop/view/Popup.cpp22
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() {