summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index 03a1d92b..f105ea66 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -229,6 +229,12 @@ void CMonitor::onConnect(bool noRule) {
}
void CMonitor::onDisconnect(bool destroy) {
+ CScopeGuard x = {[this]() {
+ if (g_pCompositor->m_bIsShuttingDown)
+ return;
+ g_pEventManager->postEvent(SHyprIPCEvent{"monitorremoved", szName});
+ EMIT_HOOK_EVENT("monitorRemoved", this);
+ }};
if (renderTimer) {
wl_event_source_remove(renderTimer);
@@ -341,9 +347,6 @@ void CMonitor::onDisconnect(bool destroy) {
g_pHyprRenderer->m_pMostHzMonitor = pMonitorMostHz;
}
std::erase_if(g_pCompositor->m_vMonitors, [&](SP<CMonitor>& el) { return el.get() == this; });
-
- g_pEventManager->postEvent(SHyprIPCEvent{"monitorremoved", szName});
- EMIT_HOOK_EVENT("monitorRemoved", this);
}
void CMonitor::addDamage(const pixman_region32_t* rg) {