summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-27 19:11:21 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-27 19:11:21 +0200
commit0964448f931310a8fff440611720923f28013fce (patch)
tree802410732a271d010ae1ed9f422224f2741a4675 /src/Compositor.cpp
parent5d63152219514ecbe861cb70e9359adc0c5b2878 (diff)
fix fullscreen in moving ws
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index f172ce56..17d0afe7 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1307,9 +1307,13 @@ void CCompositor::swapActiveWorkspaces(CMonitor* pMonitorA, CMonitor* pMonitorB)
if (w->m_iWorkspaceID == PWORKSPACEA->m_iID) {
w->m_iMonitorID = pMonitorB->ID;
- // additionally, move floating windows manually
- if (w->m_bIsFloating && w->m_bIsMapped && !w->m_bHidden) {
+ // additionally, move floating and fs windows manually
+ if (w->m_bIsFloating)
w->m_vRealPosition = w->m_vRealPosition.vec() - pMonitorA->vecPosition + pMonitorB->vecPosition;
+
+ if (w->m_bIsFullscreen) {
+ w->m_vRealPosition = pMonitorB->vecPosition;
+ w->m_vRealSize = pMonitorB->vecSize;
}
w->updateToplevel();
@@ -1323,9 +1327,13 @@ void CCompositor::swapActiveWorkspaces(CMonitor* pMonitorA, CMonitor* pMonitorB)
if (w->m_iWorkspaceID == PWORKSPACEB->m_iID) {
w->m_iMonitorID = pMonitorA->ID;
- // additionally, move floating windows manually
- if (w->m_bIsFloating && w->m_bIsMapped && !w->m_bHidden) {
+ // additionally, move floating and fs windows manually
+ if (w->m_bIsFloating)
w->m_vRealPosition = w->m_vRealPosition.vec() - pMonitorB->vecPosition + pMonitorA->vecPosition;
+
+ if (w->m_bIsFullscreen) {
+ w->m_vRealPosition = pMonitorA->vecPosition;
+ w->m_vRealSize = pMonitorA->vecSize;
}
w->updateToplevel();
@@ -1426,9 +1434,15 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni
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;
+ // additionally, move floating and fs windows manually
+ if (w->m_bIsMapped && !w->m_bHidden) {
+ if (w->m_bIsFloating)
+ w->m_vRealPosition = w->m_vRealPosition.vec() - POLDMON->vecPosition + pMonitor->vecPosition;
+
+ if (w->m_bIsFullscreen) {
+ w->m_vRealPosition = pMonitor->vecPosition;
+ w->m_vRealSize = pMonitor->vecSize;
+ }
}
w->updateToplevel();