diff --git a/packages/desktop/Cargo.toml b/packages/desktop/Cargo.toml index 9e72c3eb2..84fb9635d 100644 --- a/packages/desktop/Cargo.toml +++ b/packages/desktop/Cargo.toml @@ -25,6 +25,7 @@ serde_json = "1.0.79" thiserror = { workspace = true } tracing = { workspace = true } wry = { version = "0.35.0", default-features = false, features = [ + "os-webview", "protocol", "file-drop", ] } @@ -67,12 +68,6 @@ objc_id = "0.1.1" core-foundation = "0.9.3" objc = "0.2.7" -[target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -gtk = { version = "0.18", features = [ "v3_24" ] } -webkit2gtk = { version = "=2.0", features = [ "v2_38" ] } -percent-encoding = "2.1" - - [features] default = ["tokio_runtime", "hot-reload", "wry/objc-exception"] tokio_runtime = ["tokio"] diff --git a/packages/desktop/src/desktop_context.rs b/packages/desktop/src/desktop_context.rs index 46460b12e..c97272293 100644 --- a/packages/desktop/src/desktop_context.rs +++ b/packages/desktop/src/desktop_context.rs @@ -82,8 +82,8 @@ impl std::ops::Deref for DesktopService { impl DesktopService { pub(crate) fn new( - window: Window, webview: WebView, + window: Window, shared: Rc, edit_queue: EditQueue, asset_handlers: AssetHandlerRegistry, diff --git a/packages/desktop/src/webview.rs b/packages/desktop/src/webview.rs index 1cfd7b54e..57dec57df 100644 --- a/packages/desktop/src/webview.rs +++ b/packages/desktop/src/webview.rs @@ -73,15 +73,12 @@ impl WebviewInstance { // Otherwise, try to serve an asset, either from the user or the filesystem match index_bytes { Some(body) => responder.respond(body), - None => { - // we need to do this in the context of the dioxus runtime since the user gave us these closures - protocol::desktop_handler( - request, - asset_handlers_.clone(), - &edit_queue_, - responder, - ); - } + None => protocol::desktop_handler( + request, + asset_handlers_.clone(), + &edit_queue_, + responder, + ), } }; @@ -143,11 +140,9 @@ impl WebviewInstance { webview = webview.with_devtools(true); } - let webview = webview.build().unwrap(); - let desktop_context = Rc::from(DesktopService::new( + webview.build().unwrap(), window, - webview, shared.clone(), edit_queue, asset_handlers, @@ -161,7 +156,6 @@ impl WebviewInstance { .provide_context(Rc::new(DesktopEvalProvider::new(desktop_context.clone()))); WebviewInstance { - // We want to poll the virtualdom and the event loop at the same time, so the waker will be connected to both waker: tao_waker(shared.proxy.clone(), desktop_context.window.id()), desktop_context, dom,