Fix confusing error message

This commit is contained in:
Conrad Irwin 2023-11-07 12:00:05 -07:00
parent 3a72f2122a
commit b804b25c21
2 changed files with 8 additions and 4 deletions

View File

@ -134,7 +134,10 @@ where
.layout(state, frame_state.as_mut().unwrap(), cx); .layout(state, frame_state.as_mut().unwrap(), cx);
} }
} }
_ => panic!("must call initialize before layout"), ElementRenderPhase::Start => panic!("must call initialize before layout"),
ElementRenderPhase::LayoutRequested { .. } | ElementRenderPhase::Painted => {
panic!("element rendered twice")
}
}; };
self.phase = ElementRenderPhase::LayoutRequested { self.phase = ElementRenderPhase::LayoutRequested {

View File

@ -397,9 +397,10 @@ pub trait ElementInteraction<V: 'static>: 'static {
None None
}), }),
)); ));
let result = stateful.stateless.initialize(cx, f);
stateful.key_listeners.pop(); cx.with_key_dispatch_context(stateful.dispatch_context.clone(), |cx| {
result cx.with_key_listeners(mem::take(&mut stateful.key_listeners), f)
})
}) })
} else { } else {
let stateless = self.as_stateless_mut(); let stateless = self.as_stateless_mut();