96bd4255442ea69d961d1aa7ad41b96909bbf460

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

Message

Fix the last selected node on a workspace always being highlighted

If a floating window or other workspace was focused, the highlight
would remain.

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index 7874994dcaf5bad1c1dc869a9aeb355d5f1fdc1e..a37281d018b85a2cb6476c6fc4daf82d1e2cf8be 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -1816,7 +1816,10 @@ bool Hy3Layout::shouldRenderSelected(CWindow* window) {
 6 	auto* root = this->getWorkspaceRootGroup(window->m_iWorkspaceID);
 7 	if (root == nullptr || root->data.as_group.focused_child == nullptr) return false;
 8 	auto* focused = root->getFocusedNode();
 9-	if (focused == nullptr) return false;
10+	if (focused == nullptr
11+	    || (focused->data.type == Hy3NodeData::Window
12+	        && focused->data.as_window != g_pCompositor->m_pLastWindow))
13+		return false;
14 
15 	switch (focused->data.type) {
16 	case Hy3NodeData::Window: return focused->data.as_window == window;