diff options
| author | vaxerski <vaxry@vaxry.net> | 2025-01-04 17:21:02 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2025-01-04 17:21:02 +0100 |
| commit | a25d228840dfac88160b6f6c9513b5a587119f67 (patch) | |
| tree | db0bc4af6d309e77ab79a73b4a85dd20b8cf951b /src/events/Windows.cpp | |
| parent | 60f069d54015fec66e63f1ff7e6ff26ddb349976 (diff) | |
windows: minor initial workspace improvements
ref #8942
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index c17c425b..a20cbcad 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -121,16 +121,6 @@ void Events::listener_mapWindow(void* owner, void* data) { PWINDOW->m_bX11ShouldntFocus = PWINDOW->m_bX11ShouldntFocus || (PWINDOW->m_bIsX11 && PWINDOW->isX11OverrideRedirect() && !PWINDOW->m_pXWaylandSurface->wantsFocus()); - if (PWORKSPACE->m_bDefaultFloating) - PWINDOW->m_bIsFloating = true; - - if (PWORKSPACE->m_bDefaultPseudo) { - PWINDOW->m_bIsPseudotiled = true; - CBox desiredGeometry = {0}; - g_pXWaylandManager->getGeometryForWindow(PWINDOW, &desiredGeometry); - PWINDOW->m_vPseudoSize = Vector2D(desiredGeometry.width, desiredGeometry.height); - } - // window rules PWINDOW->m_vMatchedRules = g_pConfigManager->getMatchingRules(PWINDOW, false); std::optional<eFullscreenMode> requestedInternalFSMode, requestedClientFSMode; @@ -171,6 +161,7 @@ void Events::listener_mapWindow(void* owner, void* data) { PMONITOR = PMONITORFROMID; } PWINDOW->m_pWorkspace = PMONITOR->activeSpecialWorkspace ? PMONITOR->activeSpecialWorkspace : PMONITOR->activeWorkspace; + PWORKSPACE = PWINDOW->m_pWorkspace; Debug::log(LOG, "Rule monitor, applying to {:mw}", PWINDOW); } catch (std::exception& e) { Debug::log(ERR, "Rule monitor failed, rule: {} -> {} | err: {}", r->szRule, r->szValue, e.what()); } @@ -180,11 +171,10 @@ void Events::listener_mapWindow(void* owner, void* data) { // check if it isnt unset const auto WORKSPACERQ = r->szRule.substr(r->szRule.find_first_of(' ') + 1); - if (WORKSPACERQ == "unset") { + if (WORKSPACERQ == "unset") requestedWorkspace = ""; - } else { + else requestedWorkspace = WORKSPACERQ; - } const auto JUSTWORKSPACE = WORKSPACERQ.contains(' ') ? WORKSPACERQ.substr(0, WORKSPACERQ.find_first_of(' ')) : WORKSPACERQ; @@ -347,6 +337,16 @@ void Events::listener_mapWindow(void* owner, void* data) { workspaceSilent = false; } + if (PWORKSPACE->m_bDefaultFloating) + PWINDOW->m_bIsFloating = true; + + if (PWORKSPACE->m_bDefaultPseudo) { + PWINDOW->m_bIsPseudotiled = true; + CBox desiredGeometry = {0}; + g_pXWaylandManager->getGeometryForWindow(PWINDOW, &desiredGeometry); + PWINDOW->m_vPseudoSize = Vector2D(desiredGeometry.width, desiredGeometry.height); + } + PWINDOW->updateWindowData(); // Verify window swallowing. Get the swallower before calling onWindowCreated(PWINDOW) because getSwallower() wouldn't get it after if PWINDOW gets auto grouped. |
