mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 14:20:04 -04:00
Always use the latest async callback when rendering a viewport
This commit is contained in:
@@ -1276,9 +1276,9 @@ mod glow_integration {
|
||||
if recreate {
|
||||
viewport.window = None;
|
||||
viewport.gl_surface = None;
|
||||
viewport.viewport_ui_cb = viewport_ui_cb.clone();
|
||||
viewport.id_pair.parent = *id;
|
||||
}
|
||||
viewport.viewport_ui_cb = viewport_ui_cb.clone(); // always update the latest callback
|
||||
if let Some(w) = viewport.window.clone() {
|
||||
process_viewport_commands(commands, *id, None, &w.borrow());
|
||||
}
|
||||
|
||||
@@ -1548,7 +1548,7 @@ impl Context {
|
||||
let mut viewports = Vec::new();
|
||||
self.write(|ctx| {
|
||||
ctx.viewports.retain(|_, viewport| {
|
||||
let retain = viewport.used;
|
||||
let was_used = viewport.used;
|
||||
|
||||
if viewport_id == viewport.id_pair.parent {
|
||||
viewport.used = false;
|
||||
@@ -1559,7 +1559,7 @@ impl Context {
|
||||
id_pair: viewport.id_pair,
|
||||
viewport_ui_cb: viewport.viewport_ui_cb.clone(),
|
||||
});
|
||||
(retain || viewport_id != viewport.id_pair.parent)
|
||||
(was_used || viewport_id != viewport.id_pair.parent)
|
||||
&& available_viewports.contains(&viewport.id_pair.parent)
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user