Handle toplevel info updates

This commit is contained in:
Ian Douglas Scott 2023-02-10 13:41:08 -08:00
parent b5931cd240
commit 4ca7c9fb56
4 changed files with 17 additions and 3 deletions

View file

@ -329,6 +329,13 @@ impl Application for App {
img: None, img: None,
}); });
} }
wayland::Event::UpdateToplevel(handle, info) => {
if let Some(toplevel) =
self.toplevels.iter_mut().find(|x| x.handle == handle)
{
toplevel.info = info;
}
}
wayland::Event::CloseToplevel(handle) => { wayland::Event::CloseToplevel(handle) => {
if let Some(idx) = self.toplevels.iter().position(|x| x.handle == handle) { if let Some(idx) = self.toplevels.iter().position(|x| x.handle == handle) {
self.toplevels.remove(idx); self.toplevels.remove(idx);
@ -341,7 +348,7 @@ impl Application for App {
} }
wayland::Event::ToplevelCapture(handle, image) => { wayland::Event::ToplevelCapture(handle, image) => {
if let Some(toplevel) = self.toplevel_for_handle_mut(&handle) { if let Some(toplevel) = self.toplevel_for_handle_mut(&handle) {
println!("Got toplevel image!"); //println!("Got toplevel image!");
toplevel.img = Some(image); toplevel.img = Some(image);
} }
} }

View file

@ -67,6 +67,10 @@ pub enum Event {
zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1,
ToplevelInfo, ToplevelInfo,
), ),
UpdateToplevel(
zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1,
ToplevelInfo,
),
CloseToplevel(zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1), CloseToplevel(zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1),
ToplevelCapture( ToplevelCapture(
zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1,

View file

@ -93,6 +93,8 @@ impl ScreencopyHandler for AppData {
) { ) {
// TODO // TODO
println!("Failed"); println!("Failed");
let capture = Capture::for_session(session).unwrap();
capture.cancel();
session.destroy(); session.destroy();
} }
} }

View file

@ -32,9 +32,10 @@ impl ToplevelInfoHandler for AppData {
&mut self, &mut self,
_conn: &Connection, _conn: &Connection,
_qh: &QueueHandle<Self>, _qh: &QueueHandle<Self>,
_toplevel: &zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, toplevel: &zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1,
) { ) {
// TODO let info = self.toplevel_info_state.info(toplevel).unwrap();
self.send_event(Event::UpdateToplevel(toplevel.clone(), info.clone()));
} }
fn toplevel_closed( fn toplevel_closed(