summaryrefslogtreecommitdiff
path: root/src/desktop
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-03-17 21:59:44 +0300
committerGitHub <noreply@github.com>2026-03-17 14:59:44 -0400
commitaef76309d812c19c393b7fd01cea1768e27770c8 (patch)
tree9887ee16299a6e658fdd4e4b7642069290396989 /src/desktop
parent3a72064510a33c41b420b1b74dfa5e35f38d696b (diff)
layershell: fix popup crash with nullptr mon (#13763)
Diffstat (limited to 'src/desktop')
-rw-r--r--src/desktop/view/Popup.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/desktop/view/Popup.cpp b/src/desktop/view/Popup.cpp
index 5faf506c..50ea8307 100644
--- a/src/desktop/view/Popup.cpp
+++ b/src/desktop/view/Popup.cpp
@@ -199,9 +199,8 @@ void CPopup::onMap() {
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) {
- auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer);
- if (mon)
- mon->m_blurFBDirty = true;
+ if (m_layerOwner->m_monitor)
+ m_layerOwner->m_monitor->m_blurFBDirty = true;
}
m_alpha->setConfig(g_pConfigManager->getAnimationPropertyConfig("fadePopupsIn"));
@@ -254,8 +253,8 @@ void CPopup::onUnmap() {
m_subsurfaceHead.reset();
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;
+ if (m_layerOwner->m_monitor)
+ m_layerOwner->m_monitor->m_blurFBDirty = true;
}
// damage all children
@@ -321,8 +320,8 @@ void CPopup::onCommit(bool ignoreSiblings) {
m_requestedReposition = false;
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;
+ if (m_layerOwner->m_monitor)
+ m_layerOwner->m_monitor->m_blurFBDirty = true;
}
}