summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorはれなよ <123649644+harenayo@users.noreply.github.com>2024-06-30 03:04:48 +0900
committerGitHub <noreply@github.com>2024-06-29 20:04:48 +0200
commit1f43a5c859bfdf3dc6e880610e21cd9434a4e47b (patch)
tree1f5eeaa6c4c12396e41bd083dae107bbc1685678
parent9c5dd59d4b1927b7d88e8e3c2e260eb01d95794b (diff)
session: fix activate events being always treated as on (#6696)
* Fix listener_sessionActive to handle an event correctly when the session get inactivated * Remove log
-rw-r--r--src/events/Misc.cpp25
-rw-r--r--src/managers/KeybindManager.cpp13
2 files changed, 19 insertions, 19 deletions
diff --git a/src/events/Misc.cpp b/src/events/Misc.cpp
index 6580d93e..32f894ec 100644
--- a/src/events/Misc.cpp
+++ b/src/events/Misc.cpp
@@ -30,14 +30,25 @@ void Events::listener_RendererDestroy(wl_listener* listener, void* data) {
}
void Events::listener_sessionActive(wl_listener* listener, void* data) {
- Debug::log(LOG, "Session got activated!");
+ if (g_pCompositor->m_sWLRSession->active) {
+ Debug::log(LOG, "Session got activated!");
- g_pCompositor->m_bSessionActive = true;
+ g_pCompositor->m_bSessionActive = true;
- for (auto& m : g_pCompositor->m_vMonitors) {
- g_pCompositor->scheduleFrameForMonitor(m.get());
- g_pHyprRenderer->applyMonitorRule(m.get(), &m->activeMonitorRule, true);
- }
+ for (auto& m : g_pCompositor->m_vMonitors) {
+ g_pCompositor->scheduleFrameForMonitor(m.get());
+ g_pHyprRenderer->applyMonitorRule(m.get(), &m->activeMonitorRule, true);
+ }
+
+ g_pConfigManager->m_bWantsMonitorReload = true;
+ } else {
+ Debug::log(LOG, "Session got inactivated!");
- g_pConfigManager->m_bWantsMonitorReload = true;
+ g_pCompositor->m_bSessionActive = false;
+
+ for (auto& m : g_pCompositor->m_vMonitors) {
+ m->noFrameSchedule = true;
+ m->framesToSkip = 1;
+ }
+ }
}
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 005ce392..f66b4457 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -810,18 +810,7 @@ bool CKeybindManager::handleVT(xkb_keysym_t keysym) {
Debug::log(LOG, "Switching from VT {} to VT {}", ttynum, TTY);
- if (!wlr_session_change_vt(g_pCompositor->m_sWLRSession, TTY))
- return true; // probably same session
-
- g_pCompositor->m_bSessionActive = false;
-
- for (auto& m : g_pCompositor->m_vMonitors) {
- m->noFrameSchedule = true;
- m->framesToSkip = 1;
- }
-
- Debug::log(LOG, "Switched to VT {}, destroyed all render data, frames to skip for each: 2", TTY);
-
+ wlr_session_change_vt(g_pCompositor->m_sWLRSession, TTY);
return true;
}