mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 08:25:59 +01:00
fix crash with reenabling a monitor
This commit is contained in:
parent
587330d864
commit
37068cf4f0
1 changed files with 13 additions and 0 deletions
|
@ -21,6 +21,17 @@ void CMonitor::onConnect(bool noRule) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!m_pThisWrap) {
|
||||||
|
|
||||||
|
// find the wrap
|
||||||
|
for (auto& m : g_pCompositor->m_vRealMonitors) {
|
||||||
|
if (m->ID == ID) {
|
||||||
|
m_pThisWrap = &m;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (std::find_if(g_pCompositor->m_vMonitors.begin(), g_pCompositor->m_vMonitors.end(), [&](auto& other) { return other.get() == this; }) == g_pCompositor->m_vMonitors.end()){
|
if (std::find_if(g_pCompositor->m_vMonitors.begin(), g_pCompositor->m_vMonitors.end(), [&](auto& other) { return other.get() == this; }) == g_pCompositor->m_vMonitors.end()){
|
||||||
g_pCompositor->m_vMonitors.push_back(*m_pThisWrap);
|
g_pCompositor->m_vMonitors.push_back(*m_pThisWrap);
|
||||||
}
|
}
|
||||||
|
@ -98,6 +109,8 @@ void CMonitor::onConnect(bool noRule) {
|
||||||
activeWorkspace = PNEWWORKSPACE->m_iID;
|
activeWorkspace = PNEWWORKSPACE->m_iID;
|
||||||
scale = monitorRule.scale;
|
scale = monitorRule.scale;
|
||||||
|
|
||||||
|
m_pThisWrap = nullptr;
|
||||||
|
|
||||||
forceFullFrames = 3; // force 3 full frames to make sure there is no blinking due to double-buffering.
|
forceFullFrames = 3; // force 3 full frames to make sure there is no blinking due to double-buffering.
|
||||||
|
|
||||||
g_pCompositor->deactivateAllWLRWorkspaces(PNEWWORKSPACE->m_pWlrHandle);
|
g_pCompositor->deactivateAllWLRWorkspaces(PNEWWORKSPACE->m_pWlrHandle);
|
||||||
|
|
Loading…
Reference in a new issue