summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-03 16:19:00 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-03 16:19:00 +0200
commitc3edb20e04c7cf9dbad02ddf5ac066f4a725ccaa (patch)
tree3a2400b959fcdfd1b8056705e43a7974959c0deb /src
parentb9be405d326697df81f5bafd736b817b47aea3a1 (diff)
make monitor IDs permanent
Diffstat (limited to 'src')
-rw-r--r--src/Compositor.cpp2
-rw-r--r--src/events/Monitors.cpp2
-rw-r--r--src/helpers/Monitor.cpp1
3 files changed, 3 insertions, 2 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index d67226e2..e32d4caa 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1281,7 +1281,7 @@ void CCompositor::moveWindowToWorkspace(CWindow* pWindow, const std::string& wor
int CCompositor::getNextAvailableMonitorID() {
int64_t topID = -1;
- for (auto& m : m_vMonitors) {
+ for (auto& m : m_vRealMonitors) {
if ((int64_t)m->ID > topID)
topID = m->ID;
}
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index 6bde6f34..ee831187 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -62,6 +62,8 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
const auto PNEWMONITORWRAP = &g_pCompositor->m_vRealMonitors.emplace_back(std::make_shared<CMonitor>());
const auto PNEWMONITOR = PNEWMONITORWRAP->get();
+ PNEWMONITOR->ID = g_pCompositor->getNextAvailableMonitorID();
+
wlr_output_init_render(OUTPUT, g_pCompositor->m_sWLRAllocator, g_pCompositor->m_sWLRRenderer);
PNEWMONITOR->output = OUTPUT;
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index e3b22e0d..dd2db9aa 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -27,7 +27,6 @@ void CMonitor::onConnect(bool noRule) {
m_bEnabled = true;
- ID = g_pCompositor->getNextAvailableMonitorID();
szName = output->name;
wlr_output_set_scale(output, monitorRule.scale);