From bca7804bb6e1bf5ce5a99b9ae4806be25e36993c Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sat, 27 Apr 2024 12:43:12 +0100 Subject: internal: Window storage rework - part 1 (#5762) * Window storage rework - part 1 * format * remove useless include * fix pch * format * fix crash in dwindle * fix vram leak * prefer .expired() for bool checks --- src/desktop/Workspace.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/desktop/Workspace.cpp') diff --git a/src/desktop/Workspace.cpp b/src/desktop/Workspace.cpp index e9b155a4..cc43d221 100644 --- a/src/desktop/Workspace.cpp +++ b/src/desktop/Workspace.cpp @@ -33,10 +33,10 @@ void CWorkspace::init(PHLWORKSPACE self) { m_szName = RULEFORTHIS.defaultName.value(); m_pFocusedWindowHook = g_pHookSystem->hookDynamic("closeWindow", [this](void* self, SCallbackInfo& info, std::any param) { - const auto PWINDOW = std::any_cast(param); + const auto PWINDOW = std::any_cast(param); - if (PWINDOW == m_pLastFocusedWindow) - m_pLastFocusedWindow = nullptr; + if (PWINDOW == m_pLastFocusedWindow.lock()) + m_pLastFocusedWindow.reset(); }); m_bInert = false; @@ -75,7 +75,7 @@ void CWorkspace::startAnim(bool in, bool left, bool instant) { // set floating windows offset callbacks m_vRenderOffset.setUpdateCallback([&](void*) { for (auto& w : g_pCompositor->m_vWindows) { - if (!g_pCompositor->windowValidMapped(w.get()) || w->workspaceID() != m_iID) + if (!validMapped(w) || w->workspaceID() != m_iID) continue; w->onWorkspaceAnimUpdate(); @@ -182,11 +182,11 @@ void CWorkspace::moveToMonitor(const int& id) { ; // empty until https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/40 } -CWindow* CWorkspace::getLastFocusedWindow() { - if (!g_pCompositor->windowValidMapped(m_pLastFocusedWindow) || m_pLastFocusedWindow->workspaceID() != m_iID) +PHLWINDOW CWorkspace::getLastFocusedWindow() { + if (!validMapped(m_pLastFocusedWindow) || m_pLastFocusedWindow.lock()->workspaceID() != m_iID) return nullptr; - return m_pLastFocusedWindow; + return m_pLastFocusedWindow.lock(); } void CWorkspace::rememberPrevWorkspace(const PHLWORKSPACE& prev) { -- cgit v1.2.3