9a3f635db33b25dcaa2da31d7701c933ffd6681d

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

Message

Fix hy3:killactive not killing floating windows

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index b86912c4df5b966c0e86710dbea852b5e3e4a1d6..10d86d5e3d99673575dff70e5af0f912d3f290eb 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -1867,15 +1867,19 @@ hastab:
 6 }
 7 
 8 void Hy3Layout::killFocusedNode(int workspace) {
 9-	auto* node = this->getWorkspaceFocusedNode(workspace);
10-	if (node == nullptr) return;
11+	if (g_pCompositor->m_pLastWindow != nullptr && g_pCompositor->m_pLastWindow->m_bIsFloating) {
12+		g_pCompositor->closeWindow(g_pCompositor->m_pLastWindow);
13+	} else {
14+		auto* node = this->getWorkspaceFocusedNode(workspace);
15+		if (node == nullptr) return;
16 
17-	std::vector<CWindow*> windows;
18-	node->appendAllWindows(windows);
19+		std::vector<CWindow*> windows;
20+		node->appendAllWindows(windows);
21 
22-	for (auto* window: windows) {
23-		window->setHidden(false);
24-		g_pCompositor->closeWindow(window);
25+		for (auto* window: windows) {
26+			window->setHidden(false);
27+			g_pCompositor->closeWindow(window);
28+		}
29 	}
30 }
31