monitors: fix vrr breaking monitor disconnect (#8314)

This commit is contained in:
Ikalco 2024-11-01 07:30:26 -05:00 committed by GitHub
parent 93b4478e70
commit c4d214c42d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 3 deletions

View file

@ -1608,9 +1608,6 @@ void CConfigManager::ensureVRR(PHLMONITOR pMonitor) {
m->vrrActive = true;
return;
} else if (USEVRR == 2) {
/* fullscreen */
m->vrrActive = true;
const auto PWORKSPACE = m->activeWorkspace;
if (!PWORKSPACE)
@ -1619,6 +1616,9 @@ void CConfigManager::ensureVRR(PHLMONITOR pMonitor) {
const auto WORKSPACEFULL = PWORKSPACE->m_bHasFullscreenWindow && (PWORKSPACE->m_efFullscreenMode & FSMODE_FULLSCREEN);
if (WORKSPACEFULL) {
/* fullscreen */
m->vrrActive = true;
m->output->state->resetExplicitFences();
m->output->state->setAdaptiveSync(true);
@ -1631,6 +1631,8 @@ void CConfigManager::ensureVRR(PHLMONITOR pMonitor) {
Debug::log(ERR, "Couldn't commit output {} in ensureVRR -> true", m->output->name);
} else if (!WORKSPACEFULL) {
m->vrrActive = false;
m->output->state->resetExplicitFences();
m->output->state->setAdaptiveSync(false);

View file

@ -334,6 +334,7 @@ void CMonitor::onDisconnect(bool destroy) {
activeWorkspace.reset();
output->state->resetExplicitFences();
output->state->setAdaptiveSync(false);
output->state->setEnabled(false);
if (!state.commit())