summaryrefslogtreecommitdiff
path: root/src/desktop/Workspace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop/Workspace.cpp')
-rw-r--r--src/desktop/Workspace.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/desktop/Workspace.cpp b/src/desktop/Workspace.cpp
index 04685bd5..34db914e 100644
--- a/src/desktop/Workspace.cpp
+++ b/src/desktop/Workspace.cpp
@@ -57,6 +57,13 @@ void CWorkspace::init(PHLWORKSPACE self) {
EMIT_HOOK_EVENT("createWorkspace", this);
}
+SWorkspaceIDName CWorkspace::getPrevWorkspaceIDName(bool perMonitor) const {
+ if (perMonitor)
+ return m_sPrevWorkspacePerMonitor;
+
+ return m_sPrevWorkspace;
+}
+
CWorkspace::~CWorkspace() {
m_vRenderOffset.unregister();
@@ -196,7 +203,7 @@ PHLWINDOW CWorkspace::getLastFocusedWindow() {
void CWorkspace::rememberPrevWorkspace(const PHLWORKSPACE& prev) {
if (!prev) {
- m_sPrevWorkspace.iID = -1;
+ m_sPrevWorkspace.id = -1;
m_sPrevWorkspace.name = "";
return;
}
@@ -206,8 +213,13 @@ void CWorkspace::rememberPrevWorkspace(const PHLWORKSPACE& prev) {
return;
}
- m_sPrevWorkspace.iID = prev->m_iID;
+ m_sPrevWorkspace.id = prev->m_iID;
m_sPrevWorkspace.name = prev->m_szName;
+
+ if (prev->m_iMonitorID == m_iMonitorID) {
+ m_sPrevWorkspacePerMonitor.id = prev->m_iID;
+ m_sPrevWorkspacePerMonitor.name = prev->m_szName;
+ }
}
std::string CWorkspace::getConfigName() {
@@ -228,9 +240,7 @@ bool CWorkspace::matchesStaticSelector(const std::string& selector_) {
return true;
if (isNumber(selector)) {
-
- std::string wsname = "";
- int wsid = getWorkspaceIDFromString(selector, wsname);
+ const auto& [wsid, wsname] = getWorkspaceIDNameFromString(selector);
if (wsid == WORKSPACE_INVALID)
return false;