mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-23 02:05:33 +07:00
Don't unwrap client
If Smithay posts an error, client will become None immediately, even while the surface may still receive events.
This commit is contained in:
+14
-12
@@ -59,19 +59,21 @@ impl CompositorHandler for State {
|
|||||||
});
|
});
|
||||||
if let Some(dmabuf) = maybe_dmabuf {
|
if let Some(dmabuf) = maybe_dmabuf {
|
||||||
if let Ok((blocker, source)) = dmabuf.generate_blocker(Interest::READ) {
|
if let Ok((blocker, source)) = dmabuf.generate_blocker(Interest::READ) {
|
||||||
let client = surface.client().unwrap();
|
if let Some(client) = surface.client() {
|
||||||
let res = state
|
let res =
|
||||||
.niri
|
|
||||||
.event_loop
|
|
||||||
.insert_source(source, move |_, _, state| {
|
|
||||||
let display_handle = state.niri.display_handle.clone();
|
|
||||||
state
|
state
|
||||||
.client_compositor_state(&client)
|
.niri
|
||||||
.blocker_cleared(state, &display_handle);
|
.event_loop
|
||||||
Ok(())
|
.insert_source(source, move |_, _, state| {
|
||||||
});
|
let display_handle = state.niri.display_handle.clone();
|
||||||
if res.is_ok() {
|
state
|
||||||
add_blocker(surface, blocker);
|
.client_compositor_state(&client)
|
||||||
|
.blocker_cleared(state, &display_handle);
|
||||||
|
Ok(())
|
||||||
|
});
|
||||||
|
if res.is_ok() {
|
||||||
|
add_blocker(surface, blocker);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user