Fix the Clone impl for AnyViewHandle

This commit is contained in:
Max Brunsfeld 2021-05-07 14:05:05 -07:00
parent 318e8abf2f
commit 83a844f120

View file

@ -2389,7 +2389,6 @@ impl<T> Handle<T> for ViewHandle<T> {
}
}
#[derive(Clone)]
pub struct AnyViewHandle {
window_id: usize,
view_id: usize,
@ -2425,6 +2424,18 @@ impl AnyViewHandle {
}
}
impl Clone for AnyViewHandle {
fn clone(&self) -> Self {
self.ref_counts.lock().inc_entity(self.view_id);
Self {
window_id: self.window_id,
view_id: self.view_id,
view_type: self.view_type,
ref_counts: self.ref_counts.clone(),
}
}
}
impl<T: View> From<&ViewHandle<T>> for AnyViewHandle {
fn from(handle: &ViewHandle<T>) -> Self {
handle.ref_counts.lock().inc_entity(handle.view_id);