diff options
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/tty.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 81f56102..07b5cd3f 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -402,10 +402,24 @@ impl Tty { } let mut device = self.output_device.take().unwrap(); - niri.dmabuf_state - .destroy_global::<State>(&niri.display_handle, self.dmabuf_global.take().unwrap()); device.gles.unbind_wl_display(); + let global = self.dmabuf_global.take().unwrap(); + niri.dmabuf_state + .disable_global::<State>(&niri.display_handle, &global); + niri.event_loop + .insert_source( + Timer::from_duration(Duration::from_secs(10)), + move |_, _, state| { + state + .niri + .dmabuf_state + .destroy_global::<State>(&state.niri.display_handle, global); + TimeoutAction::Drop + }, + ) + .unwrap(); + niri.event_loop.remove(device.token); } |
