diff options
author | vaxerski <[email protected]> | 2022-11-19 13:14:55 +0000 |
---|---|---|
committer | vaxerski <[email protected]> | 2022-11-19 13:14:55 +0000 |
commit | 0ffaa8d6673c02e9360865c8cde69a606c036af7 (patch) | |
tree | c85bf6dcff82a92ae82621f39f433a2fc514008a | |
parent | e887149f257802efdca3df231675c54c911dda9b (diff) | |
download | Hyprland-0ffaa8d6673c02e9360865c8cde69a606c036af7.tar.gz Hyprland-0ffaa8d6673c02e9360865c8cde69a606c036af7.zip |
Fix minor issues with mirrors
-rw-r--r-- | src/events/Monitors.cpp | 11 | ||||
-rw-r--r-- | src/helpers/Monitor.cpp | 13 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index be598f0f..1924fe22 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -66,13 +66,6 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { } } - if (PNEWMONITORWRAP && PNEWMONITORWRAP->get()->m_bEnabled) { - Debug::log(LOG, "Connected an enabled monitor???"); - g_pConfigManager->m_bWantsMonitorReload = true; - g_pCompositor->scheduleFrameForMonitor(PNEWMONITORWRAP->get()); - return; - } - if (!PNEWMONITORWRAP) { Debug::log(LOG, "Adding completely new monitor."); PNEWMONITORWRAP = &g_pCompositor->m_vRealMonitors.emplace_back(std::make_shared<CMonitor>()); @@ -326,8 +319,8 @@ void Events::listener_monitorDestroy(void* owner, void* data) { CMonitor* pMonitor = nullptr; - for (auto& m : g_pCompositor->m_vMonitors) { - if (m->szName == OUTPUT->name) { + for (auto& m : g_pCompositor->m_vRealMonitors) { + if (m->output == OUTPUT) { pMonitor = m.get(); break; } diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 70c18aaf..c7fc6750 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -3,8 +3,16 @@ #include "../Compositor.hpp" void CMonitor::onConnect(bool noRule) { - if (m_bEnabled) + hyprListener_monitorDestroy.removeCallback(); + hyprListener_monitorFrame.removeCallback(); + hyprListener_monitorFrame.initCallback(&output->events.frame, &Events::listener_monitorFrame, this); + hyprListener_monitorDestroy.initCallback(&output->events.destroy, &Events::listener_monitorDestroy, this); + + if (m_bEnabled) { + wlr_output_enable(output, 1); + wlr_output_commit(output); return; + } szName = output->name; @@ -14,9 +22,6 @@ void CMonitor::onConnect(bool noRule) { // get monitor rule that matches SMonitorRule monitorRule = g_pConfigManager->getMonitorRuleFor(output->name, output->description ? output->description : ""); - hyprListener_monitorFrame.initCallback(&output->events.frame, &Events::listener_monitorFrame, this); - hyprListener_monitorDestroy.initCallback(&output->events.destroy, &Events::listener_monitorDestroy, this); - // if it's disabled, disable and ignore if (monitorRule.disabled) { |