aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2022-11-19 13:14:55 +0000
committervaxerski <[email protected]>2022-11-19 13:14:55 +0000
commit0ffaa8d6673c02e9360865c8cde69a606c036af7 (patch)
treec85bf6dcff82a92ae82621f39f433a2fc514008a
parente887149f257802efdca3df231675c54c911dda9b (diff)
downloadHyprland-0ffaa8d6673c02e9360865c8cde69a606c036af7.tar.gz
Hyprland-0ffaa8d6673c02e9360865c8cde69a606c036af7.zip
Fix minor issues with mirrors
-rw-r--r--src/events/Monitors.cpp11
-rw-r--r--src/helpers/Monitor.cpp13
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) {