windowrules: fix workspace rule separation

fixes #3265
This commit is contained in:
Vaxry 2023-09-12 16:50:07 +01:00
parent 2e34548aea
commit be19773aaa

View file

@ -229,17 +229,16 @@ void Events::listener_mapWindow(void* owner, void* data) {
if (PWINDOW->m_bPinned && !PWINDOW->m_bIsFloating) if (PWINDOW->m_bPinned && !PWINDOW->m_bIsFloating)
PWINDOW->m_bPinned = false; PWINDOW->m_bPinned = false;
const CVarList WORKSPACEARGS = CVarList(requestedWorkspace, 2, ' '); const CVarList WORKSPACEARGS = CVarList(requestedWorkspace, 0, ' ');
if (!WORKSPACEARGS[0].empty()) { if (!WORKSPACEARGS[0].empty()) {
std::string requestedWorkspaceName; if (WORKSPACEARGS[WORKSPACEARGS.size() - 1].find("silent") == 0)
const int REQUESTEDWORKSPACEID = getWorkspaceIDFromString(WORKSPACEARGS[0], requestedWorkspaceName); workspaceSilent = true;
std::string requestedWorkspaceName = WORKSPACEARGS.join(" ", 0, workspaceSilent ? WORKSPACEARGS.size() - 1 : 0);
const int REQUESTEDWORKSPACEID = getWorkspaceIDFromString(requestedWorkspaceName, requestedWorkspaceName);
if (REQUESTEDWORKSPACEID != INT_MAX) { if (REQUESTEDWORKSPACEID != INT_MAX) {
if (WORKSPACEARGS[1].find("silent") == 0)
workspaceSilent = true;
auto pWorkspace = g_pCompositor->getWorkspaceByID(REQUESTEDWORKSPACEID); auto pWorkspace = g_pCompositor->getWorkspaceByID(REQUESTEDWORKSPACEID);
if (!pWorkspace) if (!pWorkspace)
@ -259,7 +258,8 @@ void Events::listener_mapWindow(void* owner, void* data) {
PMONITOR = g_pCompositor->m_pLastMonitor; PMONITOR = g_pCompositor->m_pLastMonitor;
} }
} } else
workspaceSilent = false;
} }
if (PWINDOW->m_bIsFloating) { if (PWINDOW->m_bIsFloating) {