Use Weak<Capture> in session state

This commit is contained in:
Ian Douglas Scott 2024-01-24 13:58:12 -08:00
parent 82951822b9
commit 5269356089
2 changed files with 15 additions and 13 deletions

View file

@ -19,11 +19,10 @@ impl ScreencopyHandler for AppData {
session: &zcosmic_screencopy_session_v1::ZcosmicScreencopySessionV1,
buffer_infos: &[BufferInfo],
) {
let capture = Capture::for_session(session).unwrap();
if !capture.running() {
let Some(capture) = Capture::for_session(session) else {
session.destroy();
return;
}
};
let mut buffer = capture.buffer.lock().unwrap();
// Create new buffer if none, or different format
@ -53,11 +52,10 @@ impl ScreencopyHandler for AppData {
_qh: &QueueHandle<Self>,
session: &zcosmic_screencopy_session_v1::ZcosmicScreencopySessionV1,
) {
let capture = Capture::for_session(session).unwrap();
if !capture.running() {
let Some(capture) = Capture::for_session(session) else {
session.destroy();
return;
}
};
let mut buffer = capture.buffer.lock().unwrap();
if buffer.is_none() {
@ -95,8 +93,6 @@ impl ScreencopyHandler for AppData {
println!("Failed");
if let Some(capture) = Capture::for_session(session) {
capture.cancel();
} else {
println!("Capture not found?")
}
session.destroy();
}