Move debug_elements to AnyWindowHandle

Nathan Sobo created

Change summary

crates/gpui/src/app.rs | 16 ++++++++--------
crates/zed/src/zed.rs  |  2 +-
2 files changed, 9 insertions(+), 9 deletions(-)

Detailed changes

crates/gpui/src/app.rs 🔗

@@ -344,14 +344,6 @@ impl AsyncAppContext {
         self.0.borrow().windows().collect()
     }
 
-    pub fn debug_elements(&self, window: AnyWindowHandle) -> Option<json::Value> {
-        self.0.borrow().read_window(window, |cx| {
-            let root_view = cx.window.root_view();
-            let root_element = cx.window.rendered_views.get(&root_view.id())?;
-            root_element.debug(cx).log_err()
-        })?
-    }
-
     pub fn dispatch_action(
         &mut self,
         window: AnyWindowHandle,
@@ -4060,6 +4052,14 @@ impl AnyWindowHandle {
         self.update(cx, |cx| cx.remove_window())
     }
 
+    pub fn debug_elements<C: BorrowWindowContext>(&self, cx: &C) -> Option<json::Value> {
+        self.read_optional_with(cx, |cx| {
+            let root_view = cx.window.root_view();
+            let root_element = cx.window.rendered_views.get(&root_view.id())?;
+            root_element.debug(cx).log_err()
+        })
+    }
+
     #[cfg(any(test, feature = "test-support"))]
     pub fn simulate_activation(&self, cx: &mut TestAppContext) {
         self.update(cx, |cx| {

crates/zed/src/zed.rs 🔗

@@ -182,7 +182,7 @@ pub fn init(app_state: &Arc<AppState>, cx: &mut gpui::AppContext) {
             let window = cx.window();
             cx.spawn(|workspace, mut cx| async move {
                 let markdown = markdown.await.log_err();
-                let content = to_string_pretty(&cx.debug_elements(window).ok_or_else(|| {
+                let content = to_string_pretty(&window.debug_elements(&cx).ok_or_else(|| {
                     anyhow!("could not debug elements for window {}", window.id())
                 })?)
                 .unwrap();