فهرست منبع

Fix compile issue

Jonathan Kelley 1 سال پیش
والد
کامیت
6e08703c6c
2فایلهای تغییر یافته به همراه10 افزوده شده و 8 حذف شده
  1. 7 5
      packages/desktop/src/app.rs
  2. 3 3
      packages/desktop/src/desktop_context.rs

+ 7 - 5
packages/desktop/src/app.rs

@@ -334,12 +334,14 @@ impl<P: 'static> App<P> {
         let mut cx = std::task::Context::from_waker(&view.waker);
 
         loop {
-            let fut = view.dom.wait_for_work();
-            pin_mut!(fut);
+            {
+                let fut = view.dom.wait_for_work();
+                pin_mut!(fut);
 
-            match fut.poll_unpin(&mut cx) {
-                std::task::Poll::Ready(_) => {}
-                std::task::Poll::Pending => break,
+                match fut.poll_unpin(&mut cx) {
+                    std::task::Poll::Ready(_) => {}
+                    std::task::Poll::Pending => break,
+                }
             }
 
             send_edits(view.dom.render_immediate(), &view.desktop_context);

+ 3 - 3
packages/desktop/src/desktop_context.rs

@@ -34,6 +34,9 @@ pub fn window() -> DesktopContext {
     dioxus_core::prelude::consume_context().unwrap()
 }
 
+/// A handle to the [`DesktopService`] that can be passed around.
+pub type DesktopContext = Rc<DesktopService>;
+
 /// An imperative interface to the current window.
 ///
 /// To get a handle to the current window, use the [`use_window`] hook.
@@ -78,9 +81,6 @@ pub struct DesktopService {
     pub(crate) views: Rc<RefCell<Vec<*mut objc::runtime::Object>>>,
 }
 
-/// A handle to the [`DesktopService`] that can be passed around.
-pub type DesktopContext = Rc<DesktopService>;
-
 /// A smart pointer to the current window.
 impl std::ops::Deref for DesktopService {
     type Target = Window;