diff options
| author | Ikalco <73481042+ikalco@users.noreply.github.com> | 2026-03-05 08:06:55 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-05 14:06:55 +0000 |
| commit | 803e81ac398ff56816321fbe24f013671cfebc7f (patch) | |
| tree | 9c3007c6b9f65f06d5969f03b2cf8c6c5e0f94fd /src/managers/screenshare/ScreenshareSession.cpp | |
| parent | 34c7cc7d38256f32f30a947f8b459df220149feb (diff) | |
screenshare: improve destroy logic of objects (#13554)
Diffstat (limited to 'src/managers/screenshare/ScreenshareSession.cpp')
| -rw-r--r-- | src/managers/screenshare/ScreenshareSession.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/managers/screenshare/ScreenshareSession.cpp b/src/managers/screenshare/ScreenshareSession.cpp index 5c5875a8..2fddc431 100644 --- a/src/managers/screenshare/ScreenshareSession.cpp +++ b/src/managers/screenshare/ScreenshareSession.cpp @@ -39,7 +39,8 @@ CScreenshareSession::CScreenshareSession(PHLMONITOR monitor, CBox captureRegion, CScreenshareSession::~CScreenshareSession() { stop(); - LOGM(Log::TRACE, "Destroyed screenshare session for ({}): {}", m_type, m_name); + uintptr_t ptr = m_type == SHARE_WINDOW && !m_window.expired() ? (uintptr_t)m_window.get() : (m_monitor.expired() ? (uintptr_t)nullptr : (uintptr_t)m_monitor.get()); + LOGM(Log::TRACE, "Destroyed screenshare session for ({}): {}, {:x}", m_type, m_name, ptr); } void CScreenshareSession::stop() { @@ -52,6 +53,9 @@ void CScreenshareSession::stop() { } void CScreenshareSession::init() { + uintptr_t ptr = m_type == SHARE_WINDOW && !m_window.expired() ? (uintptr_t)m_window.get() : (m_monitor.expired() ? (uintptr_t)nullptr : (uintptr_t)m_monitor.get()); + LOGM(Log::TRACE, "Created screenshare session for ({}): {}, {:x}", m_type, m_name, ptr); + m_shareStopTimer = makeShared<CEventLoopTimer>( std::chrono::milliseconds(500), [this](SP<CEventLoopTimer> self, void* data) { @@ -121,7 +125,7 @@ void CScreenshareSession::screenshareEvents(bool startSharing) { m_sharing = true; g_pEventManager->postEvent(SHyprIPCEvent{.event = "screencast", .data = std::format("1,{}", m_type)}); g_pEventManager->postEvent(SHyprIPCEvent{.event = "screencastv2", .data = std::format("1,{},{}", m_type, m_name)}); - LOGM(Log::INFO, "New screenshare session for ({}): {}", m_type, m_name); + LOGM(Log::INFO, "Started screenshare session for ({}): {}", m_type, m_name); Event::bus()->m_events.screenshare.state.emit(true, m_type, m_name); } else if (!startSharing && m_sharing) { |
