Skip to content

Commit b7f42a1

Browse files
TruenyaКрылов Александр
andauthored
keybinds: fix move to prev ws, moved to same mon (#6688)
Co-authored-by: Крылов Александр <[email protected]>
1 parent f2dc48d commit b7f42a1

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/managers/KeybindManager.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,14 +1048,20 @@ SWorkspaceIDName getWorkspaceToChangeFromArgs(std::string args, PHLWORKSPACE PCU
10481048
return {WORKSPACE_NOT_CHANGED, ""};
10491049
}
10501050

1051-
const auto ID = PCURRENTWORKSPACE->m_iID;
1052-
if (const auto PWORKSPACETOCHANGETO = g_pCompositor->getWorkspaceByID(PPREVWS.id); PWORKSPACETOCHANGETO) {
1053-
if (PER_MON && PCURRENTWORKSPACE->m_iMonitorID != PWORKSPACETOCHANGETO->m_iMonitorID)
1054-
return {WORKSPACE_NOT_CHANGED, ""};
1051+
const auto ID = PCURRENTWORKSPACE->m_iID;
1052+
const auto PWORKSPACETOCHANGETO = g_pCompositor->getWorkspaceByID(PPREVWS.id);
1053+
if (!PWORKSPACETOCHANGETO)
1054+
return {ID, PPREVWS.name.empty() ? std::to_string(PPREVWS.id) : PPREVWS.name};
1055+
1056+
if (!PER_MON || PCURRENTWORKSPACE->m_iMonitorID == PWORKSPACETOCHANGETO->m_iMonitorID)
10551057
return {ID, PWORKSPACETOCHANGETO->m_szName};
1056-
}
10571058

1058-
return {ID, PPREVWS.name.empty() ? std::to_string(PPREVWS.id) : PPREVWS.name};
1059+
// PER_MON and cur ws is not on same monitor with prev per monitor
1060+
const auto POTHERWSTOCHANGETO = g_pCompositor->getWorkspaceByID(PCURRENTWORKSPACE->getPrevWorkspaceIDName(false).id);
1061+
if (POTHERWSTOCHANGETO && POTHERWSTOCHANGETO->m_iMonitorID == PCURRENTWORKSPACE->m_iMonitorID)
1062+
return {ID, POTHERWSTOCHANGETO->m_szName};
1063+
1064+
return {WORKSPACE_NOT_CHANGED, ""};
10591065
}
10601066

10611067
void CKeybindManager::changeworkspace(std::string args) {

0 commit comments

Comments
 (0)