From 1162ba4c106de32341b82ad6793f617d3d2d230b Mon Sep 17 00:00:00 2001 From: shadow cat Date: Tue, 16 Sep 2025 17:34:19 -0400 Subject: [PATCH] Option.duplicate --- src/layout/painter.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/layout/painter.rs b/src/layout/painter.rs index ad71fdb..9e568bb 100644 --- a/src/layout/painter.rs +++ b/src/layout/painter.rs @@ -6,7 +6,7 @@ use crate::{ UiVec2, Vec2, WidgetId, Widgets, }, render::{Primitive, PrimitiveHandle, Primitives}, - util::{HashMap, HashSet, Id}, + util::{HashMap, HashSet, Id, IdUtil}, }; pub struct Painter<'a, 'c> { @@ -77,12 +77,16 @@ impl<'a> PainterCtx<'a> { return; }; - let parent = active.parent(); drop(active.textures); self.textures.free(); self.primitives.set_pos(active.span.start); - self.draw_inner(id, active.region, parent, Some(active.children)); + self.draw_inner( + id, + active.region, + active.parent.duplicate(), + Some(active.children), + ); self.active.widgets.get_mut(id).unwrap().resize = active.resize; let delta = self.primitives.apply(active.span.clone()); @@ -204,7 +208,7 @@ impl<'a> PainterCtx<'a> { let instance = self.active.widgets.get_mut(&parent).unwrap(); let end = &mut instance.span.end; *end = end.strict_add_signed(delta); - let parent_parent = instance.parent(); + let parent_parent = instance.parent.duplicate(); for child in instance .children .iter() @@ -346,9 +350,3 @@ impl SizeCtx<'_> { self.text.draw(buffer, attrs, self.textures) } } - -impl WidgetInstance { - pub fn parent(&self) -> Option { - self.parent.as_ref().map(|p| p.duplicate()) - } -}