App: add on_main_frame_committed, called after every main-surface commit
A host that hands part of its content to input-transparent subsurfaces has no way to know when the main frame that replaces that content has actually been sent: `view()` runs when the tree is dirty, but the draw can be deferred by a pending frame callback, so a subsurface dropped on the strength of the rebuild alone can vanish a frame before the main paints its replacement. The new hook fires in `draw_frame` right after the main buffer is rendered and committed, before the subsurfaces are reconciled for the same iteration, so the host can retire a subsurface knowing the main frame behind it is already out. `on_first_frame_committed` keeps its one-shot role.
This commit is contained in:
@@ -75,6 +75,7 @@ pub( crate ) fn draw_frame<A: App>( data: &mut AppData<A> ) -> bool
|
||||
data.first_frame_committed = true;
|
||||
first_commit_now = true;
|
||||
}
|
||||
data.app.on_main_frame_committed();
|
||||
}
|
||||
|
||||
for ( _, ss ) in data.secondaries.iter_mut()
|
||||
|
||||
Reference in New Issue
Block a user