Fix the Clone impl for AnyViewHandle

Max Brunsfeld created

Change summary

gpui/src/app.rs | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

Detailed changes

gpui/src/app.rs 🔗

@@ -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);