summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-12-12 01:15:17 +0000
committerVaxry <vaxry@vaxry.net>2023-12-12 01:15:17 +0000
commit8f3848788422822c2cb36c57b4f3929eec1cc42c (patch)
tree45ed152b7a1f158840c526e2e11f6f380e6ed3bd /src/events/Windows.cpp
parentaccb3d8d0b339ce83dd36704503253d874c7163b (diff)
xwayland: don't change workspace on configure for invisible windows
fixes #3578
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index ff68d13f..2c107999 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -1062,6 +1062,13 @@ void Events::listener_configureX11(void* owner, void* data) {
wlr_xwayland_surface_configure(PWINDOW->m_uSurface.xwayland, E->x, E->y, E->width, E->height);
+ PWINDOW->m_vReportedSize = {E->width, E->height};
+
+ PWINDOW->updateWindowDecos();
+
+ if (!g_pCompositor->isWorkspaceVisible(PWINDOW->m_iWorkspaceID))
+ return; // further things are only for visible windows
+
PWINDOW->m_iWorkspaceID = g_pCompositor->getMonitorFromVector(PWINDOW->m_vRealPosition.vec() + PWINDOW->m_vRealSize.vec() / 2.f)->activeWorkspace;
g_pCompositor->changeWindowZOrder(PWINDOW, true);
@@ -1072,10 +1079,6 @@ void Events::listener_configureX11(void* owner, void* data) {
g_pInputManager->refocus();
g_pHyprRenderer->damageWindow(PWINDOW);
-
- PWINDOW->updateWindowDecos();
-
- PWINDOW->m_vReportedSize = {E->width, E->height};
}
void Events::listener_unmanagedSetGeometry(void* owner, void* data) {