Fix minor issues with mirrors

This commit is contained in:
Vaxry 2022-11-19 13:14:55 +00:00
parent e887149f25
commit 0ffaa8d667
2 changed files with 11 additions and 13 deletions

View file

@ -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) { if (!PNEWMONITORWRAP) {
Debug::log(LOG, "Adding completely new monitor."); Debug::log(LOG, "Adding completely new monitor.");
PNEWMONITORWRAP = &g_pCompositor->m_vRealMonitors.emplace_back(std::make_shared<CMonitor>()); 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; CMonitor* pMonitor = nullptr;
for (auto& m : g_pCompositor->m_vMonitors) { for (auto& m : g_pCompositor->m_vRealMonitors) {
if (m->szName == OUTPUT->name) { if (m->output == OUTPUT) {
pMonitor = m.get(); pMonitor = m.get();
break; break;
} }

View file

@ -3,8 +3,16 @@
#include "../Compositor.hpp" #include "../Compositor.hpp"
void CMonitor::onConnect(bool noRule) { 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; return;
}
szName = output->name; szName = output->name;
@ -14,9 +22,6 @@ void CMonitor::onConnect(bool noRule) {
// get monitor rule that matches // get monitor rule that matches
SMonitorRule monitorRule = g_pConfigManager->getMonitorRuleFor(output->name, output->description ? output->description : ""); 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 it's disabled, disable and ignore
if (monitorRule.disabled) { if (monitorRule.disabled) {