f6850d1541a5c895b0b9e8e223706a472e1a209c

Author
outfoxxed <outfoxxed@outfoxxed.me>
Committer
outfoxxed <outfoxxed@outfoxxed.me>
Date

Message

Merge remote-tracking branch 'dridus/rmm/special-workspace-support' into special-workspace

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index f5cae4fa4b7a2ae79c62e6c8ea73e3c21146c0e1..459f64248a51dc83f3d8f23bd30c4469b2fe4a30 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -1544,18 +1544,7 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
 6 	auto window = node->data.as_window();
 7 	auto root_node = this->getWorkspaceRootGroup(window->m_pWorkspace);
 8 
 9-	PHLMONITOR monitor;
10-
11-	if (node->workspace->m_bIsSpecialWorkspace) {
12-		for (auto& m: g_pCompositor->m_vMonitors) {
13-			if (m->activeSpecialWorkspace == node->workspace) {
14-				monitor = m;
15-				break;
16-			}
17-		}
18-	} else {
19-		monitor = g_pCompositor->getMonitorFromID(node->workspace->m_iMonitorID);
20-	}
21+	auto monitor = g_pCompositor->getMonitorFromID(node->workspace->m_iMonitorID);
22 
23 	if (monitor == nullptr) {
24 		hy3_log(
25diff --git a/src/dispatchers.cpp b/src/dispatchers.cpp
26index ba152a7c0c51328ccec426da5ed3b3b312e9deaf..27ab212bf6334614259bb9fd40903647b2a51abe 100644
27--- a/src/dispatchers.cpp
28+++ b/src/dispatchers.cpp
29@@ -11,7 +11,8 @@
30 PHLWORKSPACE workspace_for_action(bool allow_fullscreen = false) {
31 	if (g_pLayoutManager->getCurrentLayout() != g_Hy3Layout.get()) return nullptr;
32 
33-	auto workspace = g_pCompositor->m_pLastMonitor->activeWorkspace;
34+	auto workspace = g_pCompositor->m_pLastMonitor->activeSpecialWorkspace;
35+	if (!valid(workspace)) workspace = g_pCompositor->m_pLastMonitor->activeWorkspace;
36 
37 	if (!valid(workspace)) return nullptr;
38 	if (!allow_fullscreen && workspace->m_bHasFullscreenWindow) return nullptr;