summaryrefslogtreecommitdiff
path: root/src/managers/screenshare/ScreenshareSession.cpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2026-03-05 08:06:55 -0600
committerGitHub <noreply@github.com>2026-03-05 14:06:55 +0000
commit803e81ac398ff56816321fbe24f013671cfebc7f (patch)
tree9c3007c6b9f65f06d5969f03b2cf8c6c5e0f94fd /src/managers/screenshare/ScreenshareSession.cpp
parent34c7cc7d38256f32f30a947f8b459df220149feb (diff)
screenshare: improve destroy logic of objects (#13554)
Diffstat (limited to 'src/managers/screenshare/ScreenshareSession.cpp')
-rw-r--r--src/managers/screenshare/ScreenshareSession.cpp8
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) {