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

+3 -2
View File
@@ -1560,6 +1560,7 @@ fn deliver_frame_callbacks(state: &mut Ferese, node: DrmNode, crtc: crtc::Handle
}
fn send_frame_callbacks(state: &mut Ferese, output: &Output) {
let eligible = state.callback_outputs();
if state.session_lock.active {
state.lock_frame_callbacks(output);
return;
@@ -1576,13 +1577,13 @@ fn send_frame_callbacks(state: &mut Ferese, output: &Output) {
})
.for_each(|window| {
window.send_frame(output, state.start_time.elapsed(), None, |surface, _| {
state.display_presentation.callback_output(&surface.into())
eligible.get(&surface.into()).cloned()
});
});
let layers = layer_map_for_output(output).layers().cloned().collect::<Vec<_>>();
layers.iter().for_each(|layer| {
layer.send_frame(output, state.start_time.elapsed(), None, |surface, _| {
state.display_presentation.callback_output(&surface.into())
eligible.get(&surface.into()).cloned()
});
});
state.send_cursor_frame(output);