summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-08-25 18:05:08 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-08-25 18:05:08 +0200
commit870471dd96724474869d2e648b623c17df12fb57 (patch)
tree62b34b8586bb14dab6f64991edf9969cff885caa /src/events/Windows.cpp
parent23e17700a73324e7e0a5bccb96e426bbb99efe7b (diff)
internal: allow opening empty special workspaces
Fixes point 2 of #2596
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 02ccd950..c1f3c4db 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -142,10 +142,12 @@ void Events::listener_mapWindow(void* owner, void* data) {
}
}
- PWINDOW->m_iWorkspaceID = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID)->activeWorkspace;
+ const auto PMONITORFROMID = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID);
+
+ PWINDOW->m_iWorkspaceID = PMONITOR->specialWorkspaceID ? PMONITOR->specialWorkspaceID : PMONITOR->activeWorkspace;
if (PWINDOW->m_iMonitorID != PMONITOR->ID) {
g_pKeybindManager->m_mDispatchers["focusmonitor"](std::to_string(PWINDOW->m_iMonitorID));
- PMONITOR = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID);
+ PMONITOR = PMONITORFROMID;
}
Debug::log(ERR, "Rule monitor, applying to window %lx -> mon: %i, workspace: %i", PWINDOW, PWINDOW->m_iMonitorID, PWINDOW->m_iWorkspaceID);