turn desktop context into Rc<DesktopContext>

This commit is contained in:
Andrew Collins committed 2023-04-11 11:03:46 -04:00
1 parent a5c46b0e5c
commit 0e1f015b78
3 files changed
+24 -19

No files matched your search

+10 -12
View File
@@ -144,7 +144,7 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
let shortcut_manager = ShortcutRegistry::new(&event_loop);
let (web_view, _) = create_new_window(
let web_view = create_new_window(
cfg,
&event_loop,
&proxy,
@@ -282,30 +282,28 @@ fn create_new_window(
queue: &WebviewQueue,
event_handlers: &WindowEventHandlers,
shortcut_manager: ShortcutRegistry,
) -> (WebviewHandler, DesktopContext) {
) -> WebviewHandler {
let webview = webview::build(&mut cfg, event_loop, proxy.clone());
let desktop_context = DesktopContext::new(
let desktop_context = Rc::from(DesktopContext::new(
webview.clone(),
proxy.clone(),
event_loop.clone(),
queue.clone(),
event_handlers.clone(),
shortcut_manager,
);
));
dom.base_scope().provide_context(desktop_context.clone());
let id = webview.window().id();
// We want to poll the virtualdom and the event loop at the same time, so the waker will be connected to both
(
WebviewHandler {
webview,
dom,
waker: waker::tao_waker(proxy, id),
},
desktop_context,
)
WebviewHandler {
webview,
dom,
waker: waker::tao_waker(proxy, id),
}
}
struct WebviewHandler {