Separate presentation facts from surface eligibility policy

This commit is contained in:
Samuel Onoja committed 2026-10-02 08:16:00 +01:00
1 parent aecf54bc76
commit 96b0a9d097
10 files changed
+88 -67

No files matched your search

+2 -3
View File
@@ -213,13 +213,14 @@ impl Ferese {
}
pub(crate) fn lock_frame_callbacks(&self, output: &Output) {
let eligible = self.callback_outputs();
if let Some(surface) = self.session_lock.surfaces.get(output).filter(|surface| surface.alive()) {
smithay::desktop::utils::send_frames_surface_tree(
surface.wl_surface(),
output,
self.start_time.elapsed(),
None,
|surface, _| self.display_presentation.callback_output(&surface.into()),
|surface, _| eligible.get(&surface.into()).cloned(),
);
}
}
@@ -236,7 +237,6 @@ impl SessionLockHandler for Ferese {
}
self.cancel_logout_confirmation();
self.session_lock.active = true;
self.display_presentation.clear();
self.refresh_idle_inhibition();
self.session_lock.idle_since = Some(Instant::now());
match self
@@ -304,7 +304,6 @@ impl SessionLockHandler for Ferese {
}
let sleeping = self.session_lock.sleeping;
self.session_lock = Lock::default();
self.display_presentation.clear();
self.refresh_idle_inhibition();
if sleeping {
crate::backends::direct::wake_locked_outputs(self);