summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-05-03 15:15:56 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-05-03 15:15:56 +0100
commitfd3e6a3bfde6d44a62df4834ccae5b24a1f36469 (patch)
tree04f840873d79c1695dd1f6a68c2c37a8fb49b039 /src/helpers/Monitor.cpp
parent0155b85950fd360011b84fcb3460248264191ee2 (diff)
workspaces: restore monitor on re-plug
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index f9209b8a..924aab1d 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -144,6 +144,14 @@ void CMonitor::onConnect(bool noRule) {
setupDefaultWS(monitorRule);
+ for (auto& ws : g_pCompositor->m_vWorkspaces) {
+ if (ws->m_szLastMonitor == szName) {
+ g_pCompositor->moveWorkspaceToMonitor(ws.get(), this);
+ ws->startAnim(true, true, true);
+ ws->m_szLastMonitor = "";
+ }
+ }
+
scale = monitorRule.scale;
if (scale < 0.1)
scale = getDefaultScale();
@@ -264,6 +272,7 @@ void CMonitor::onDisconnect() {
}
for (auto& w : wspToMove) {
+ w->m_szLastMonitor = szName;
g_pCompositor->moveWorkspaceToMonitor(w, BACKUPMON);
w->startAnim(true, true, true);
}
@@ -378,6 +387,7 @@ void CMonitor::setupDefaultWS(const SMonitorRule& monitorRule) {
g_pCompositor->deactivateAllWLRWorkspaces(PNEWWORKSPACE->m_pWlrHandle);
PNEWWORKSPACE->setActive(true);
+ PNEWWORKSPACE->m_szLastMonitor = "";
}
void CMonitor::setMirror(const std::string& mirrorOf) {