93a7151f5e016b3dffc50c334f179cdcbfd13c27

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

Message

fix crash when rendering tab bar leave animation on window close

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index 6f09be40ecedbd5ac641ba6f41d2d88429d778ad..da41daaa83adb7fd508eddb3aad304000ce83958 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -1438,7 +1438,7 @@ void Hy3Layout::renderHook(void*, SCallbackInfo&, std::any data) {
 6 		for (auto& entry: g_Hy3Layout->tab_groups) {
 7 			if (!entry.hidden
 8 			    && entry.target_window->m_iMonitorID == g_pHyprOpenGL->m_RenderData.pMonitor->ID
 9-					&& entry.target_window->m_pWorkspace->m_bVisible
10+					&& (!entry.target_window->m_pWorkspace || entry.target_window->m_pWorkspace->m_bVisible)
11 			    && std::find(rendered_groups.begin(), rendered_groups.end(), &entry)
12 			           == rendered_groups.end())
13 			{
14diff --git a/src/TabGroup.cpp b/src/TabGroup.cpp
15index a6e8b169568d74c1dd6b385e27b63448da8fca5a..09ebd3dc3ee3dd2dcadcf519fc3c66286a768761 100644
16--- a/src/TabGroup.cpp
17+++ b/src/TabGroup.cpp
18@@ -580,8 +580,9 @@ void Hy3TabGroup::renderTabBar() {
19 			if (!valid(windowref)) continue;
20 			auto window = windowref.lock();
21 
22-			auto wpos = window->m_vRealPosition.value() - monitor->vecPosition
23-								+ window->m_pWorkspace->m_vRenderOffset.value();
24+			auto wpos =
25+					window->m_vRealPosition.value() - monitor->vecPosition
26+					+ (window->m_pWorkspace ? window->m_pWorkspace->m_vRenderOffset.value() : Vector2D());
27 
28 			auto wsize = window->m_vRealSize.value();
29