diff --git a/crates/egui/src/context.rs b/crates/egui/src/context.rs index d0d6b9ca266..ea61cd7d034 100644 --- a/crates/egui/src/context.rs +++ b/crates/egui/src/context.rs @@ -592,11 +592,11 @@ impl ContextImpl { /// /// For the root viewport this will return [`ViewportId::ROOT`]. pub(crate) fn parent_viewport_id(&self) -> ViewportId { - self.viewport_stack - .last() - .copied() - .unwrap_or_default() - .parent + let viewport_id = self.viewport_id(); + *self + .viewport_parents + .get(&viewport_id) + .unwrap_or(&ViewportId::ROOT) } fn all_viewport_ids(&self) -> ViewportIdSet {