aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLeiser Fernández Gallo <[email protected]>2024-09-15 22:03:42 +0200
committerGitHub <[email protected]>2024-09-15 21:03:42 +0100
commit9e356562446f44c471ae38a80506a9df039305d6 (patch)
tree4889f6374686b1a144592d40910c372e90c151e8
parente87758529e9d2dc70f318346c66a9d895d4503ce (diff)
downloadHyprland-9e356562446f44c471ae38a80506a9df039305d6.tar.gz
Hyprland-9e356562446f44c471ae38a80506a9df039305d6.zip
internal: Delay monitor events/hooks (#7797)
* Delay monitor messages * Format
-rw-r--r--src/helpers/Monitor.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index 5b01d651..708a5cc8 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -192,10 +192,6 @@ void CMonitor::onConnect(bool noRule) {
if (!activeMonitorRule.mirrorOf.empty())
setMirror(activeMonitorRule.mirrorOf);
- g_pEventManager->postEvent(SHyprIPCEvent{"monitoradded", szName});
- g_pEventManager->postEvent(SHyprIPCEvent{"monitoraddedv2", std::format("{},{},{}", ID, szName, szShortDescription)});
- EMIT_HOOK_EVENT("monitorAdded", this);
-
if (!g_pCompositor->m_pLastMonitor) // set the last monitor if it isnt set yet
g_pCompositor->setActiveMonitor(this);
@@ -224,6 +220,10 @@ void CMonitor::onConnect(bool noRule) {
PROTO::gamma->applyGammaToState(this);
events.connect.emit();
+
+ g_pEventManager->postEvent(SHyprIPCEvent{"monitoradded", szName});
+ g_pEventManager->postEvent(SHyprIPCEvent{"monitoraddedv2", std::format("{},{},{}", ID, szName, szShortDescription)});
+ EMIT_HOOK_EVENT("monitorAdded", this);
}
void CMonitor::onDisconnect(bool destroy) {
@@ -281,9 +281,6 @@ void CMonitor::onDisconnect(bool destroy) {
Debug::log(LOG, "Removed monitor {}!", szName);
- g_pEventManager->postEvent(SHyprIPCEvent{"monitorremoved", szName});
- EMIT_HOOK_EVENT("monitorRemoved", this);
-
if (!BACKUPMON) {
Debug::log(WARN, "Unplugged last monitor, entering an unsafe state. Good luck my friend.");
g_pCompositor->enterUnsafeState();
@@ -342,6 +339,9 @@ 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) {