summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-07-25 14:22:32 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-07-25 14:22:32 +0200
commite388a86c9d2968a162ace54c5eeaf4a897d22dae (patch)
treee9d75e4f003b8b0707a977136fd0544e2197bc92 /src
parent3e6abaf680ac85daacc677836655e9aa222b1528 (diff)
move floating windows manually on moveworkspacetomonitor
Diffstat (limited to 'src')
-rw-r--r--src/Compositor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index a9b27396..175cb66d 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1273,8 +1273,14 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, SMonitor* pMoni
pWorkspace->moveToMonitor(pMonitor->ID);
for (auto& w : m_vWindows) {
- if (w->m_iWorkspaceID == pWorkspace->m_iID)
+ if (w->m_iWorkspaceID == pWorkspace->m_iID) {
w->m_iMonitorID = pMonitor->ID;
+
+ // additionally, move floating windows manually
+ if (w->m_bIsFloating && w->m_bIsMapped && !w->m_bHidden) {
+ w->m_vRealPosition = w->m_vRealPosition.vec() - POLDMON->vecPosition + pMonitor->vecPosition;
+ }
+ }
}
if (SWITCHINGISACTIVE) { // if it was active, preserve its' status. If it wasn't, don't.