summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-22 14:22:21 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-22 14:22:21 +0200
commitd0ec2b72aec8a91a904b7678ab093e648bd59cf2 (patch)
tree74fa06ef278b715a46e1c0be4c3268e174e916c4
parente97fa4e26bf83377d56d040fa27d7a0352e51a3f (diff)
report sizes to all windows on fullscreen
-rw-r--r--src/Compositor.cpp10
-rw-r--r--src/Compositor.hpp1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 5efbea2c..c9bd3aad 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1405,6 +1405,8 @@ void CCompositor::setWindowFullscreen(CWindow* pWindow, bool on, eFullscreenMode
}
g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize.goalv(), true);
+
+ forceReportSizesToWindowsOnWorkspace(pWindow->m_iWorkspaceID);
}
void CCompositor::moveUnmanagedX11ToWindows(CWindow* pWindow) {
@@ -1604,4 +1606,12 @@ Vector2D CCompositor::parseWindowVectorArgsRelative(const std::string& args, con
const int Y = std::stoi(y);
return Vector2D(X + relativeTo.x, Y + relativeTo.y);
+}
+
+void CCompositor::forceReportSizesToWindowsOnWorkspace(const int& wid) {
+ for (auto& w : m_vWindows) {
+ if (w->m_iWorkspaceID == wid && w->m_bIsMapped && !w->m_bHidden) {
+ g_pXWaylandManager->setWindowSize(w.get(), w->m_vRealSize.vec(), true);
+ }
+ }
} \ No newline at end of file
diff --git a/src/Compositor.hpp b/src/Compositor.hpp
index 6ab5165f..082e4601 100644
--- a/src/Compositor.hpp
+++ b/src/Compositor.hpp
@@ -158,6 +158,7 @@ public:
SLayerSurface* getLayerSurfaceFromSurface(wlr_surface*);
void closeWindow(CWindow*);
Vector2D parseWindowVectorArgsRelative(const std::string&, const Vector2D&);
+ void forceReportSizesToWindowsOnWorkspace(const int&);
std::string explicitConfigPath;