core: move workspace ptrs to weak (#11194)

Fixes some race conditions that come up in tests. We only clean up workspaces when we render a frame. With this, they are always cleared instantly.
This commit is contained in:
Vaxry 2025-07-24 00:36:29 +02:00 committed by GitHub
parent ecc04e8ba7
commit 31cc7f3b87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 67 additions and 73 deletions

View file

@ -432,16 +432,16 @@ static std::string workspacesRequest(eHyprCtlOutputFormat format, std::string re
if (format == eHyprCtlOutputFormat::FORMAT_JSON) {
result += "[";
for (auto const& w : g_pCompositor->m_workspaces) {
result += CHyprCtl::getWorkspaceData(w, format);
for (auto const& w : g_pCompositor->getWorkspaces()) {
result += CHyprCtl::getWorkspaceData(w.lock(), format);
result += ",";
}
trimTrailingComma(result);
result += "]";
} else {
for (auto const& w : g_pCompositor->m_workspaces) {
result += CHyprCtl::getWorkspaceData(w, format);
for (auto const& w : g_pCompositor->getWorkspaces()) {
result += CHyprCtl::getWorkspaceData(w.lock(), format);
}
}