diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-07-28 22:08:05 +0200 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-07-28 22:08:05 +0200 |
| commit | abe29647ae9cf2e6bd40784790b3d99fcc962613 (patch) | |
| tree | c64372390f0319d0bcb119f16941856f7e6b8575 /src/Compositor.cpp | |
| parent | c63d0003a1e5155248695f19778f815a8ad34c67 (diff) | |
monitor: fix crash on mutating workspace vec
fixes #11236
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 14f9ee63..e00c8c36 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2692,6 +2692,16 @@ void CCompositor::registerWorkspace(PHLWORKSPACE w) { w->m_events.destroy.listenStatic([this, weak = PHLWORKSPACEREF{w}] { std::erase(m_workspaces, weak); }); } +std::vector<PHLWORKSPACE> CCompositor::getWorkspacesCopy() { + std::vector<PHLWORKSPACE> wsp; + auto range = getWorkspaces(); + wsp.reserve(std::ranges::distance(range)); + for (auto& r : range) { + wsp.emplace_back(r.lock()); + } + return wsp; +} + void CCompositor::performUserChecks() { static auto PNOCHECKXDG = CConfigValue<Hyprlang::INT>("misc:disable_xdg_env_checks"); static auto PNOCHECKQTUTILS = CConfigValue<Hyprlang::INT>("misc:disable_hyprland_qtutils_check"); |
