summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-04-03 10:09:42 +0100
committerVaxry <vaxry@vaxry.net>2024-04-03 10:09:48 +0100
commit347b83903474ab9e95fa9d4ba123f6f78ab38d40 (patch)
treecc5a355120ed3a07c85af428c91b63e10674dff8 /src/helpers/Monitor.cpp
parentfbdaf74a82b38e11a0a6914b3c9f7cb934ac1624 (diff)
workspaces: add visible flag
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index 4018cc8b..152356e4 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -416,6 +416,7 @@ void CMonitor::setupDefaultWS(const SMonitorRule& monitorRule) {
activeWorkspace = PNEWWORKSPACE;
PNEWWORKSPACE->setActive(true);
+ PNEWWORKSPACE->m_bVisible = true;
PNEWWORKSPACE->m_szLastMonitor = "";
}
@@ -547,7 +548,9 @@ void CMonitor::changeWorkspace(const PHLWORKSPACE& pWorkspace, bool internal, bo
if (pWorkspace == activeWorkspace)
return;
- const auto POLDWORKSPACE = activeWorkspace;
+ const auto POLDWORKSPACE = activeWorkspace;
+ POLDWORKSPACE->m_bVisible = false;
+ pWorkspace->m_bVisible = true;
activeWorkspace = pWorkspace;
@@ -612,6 +615,7 @@ void CMonitor::setSpecialWorkspace(const PHLWORKSPACE& pWorkspace) {
if (!pWorkspace) {
// remove special if exists
if (activeSpecialWorkspace) {
+ activeSpecialWorkspace->m_bVisible = false;
activeSpecialWorkspace->startAnim(false, false);
g_pEventManager->postEvent(SHyprIPCEvent{"activespecial", "," + szName});
}
@@ -633,8 +637,10 @@ void CMonitor::setSpecialWorkspace(const PHLWORKSPACE& pWorkspace) {
return;
}
- if (activeSpecialWorkspace)
+ if (activeSpecialWorkspace) {
+ activeSpecialWorkspace->m_bVisible = false;
activeSpecialWorkspace->startAnim(false, false);
+ }
bool animate = true;
//close if open elsewhere
@@ -651,8 +657,9 @@ void CMonitor::setSpecialWorkspace(const PHLWORKSPACE& pWorkspace) {
}
// open special
- pWorkspace->m_iMonitorID = ID;
- activeSpecialWorkspace = pWorkspace;
+ pWorkspace->m_iMonitorID = ID;
+ activeSpecialWorkspace = pWorkspace;
+ activeSpecialWorkspace->m_bVisible = true;
if (animate)
pWorkspace->startAnim(true, true);