diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-12-12 01:15:17 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-12-12 01:15:17 +0000 |
| commit | 8f3848788422822c2cb36c57b4f3929eec1cc42c (patch) | |
| tree | 45ed152b7a1f158840c526e2e11f6f380e6ed3bd /src/events/Windows.cpp | |
| parent | accb3d8d0b339ce83dd36704503253d874c7163b (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.cpp | 11 |
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) { |
