diff options
author | 2022-11-05 01:56:25 +0100 | |
---|---|---|
committer | 2022-11-05 01:56:25 +0100 | |
commit | 1632826c8e70f9f1f5f1f3b3fbb5a4d421f7afbe (patch) | |
tree | 8a0c6c4eda5ffd349d65c9b0d4273982a21c79c4 /winit/src/application.rs | |
parent | d222b5c8b0befab665c20ba0112b28199df0ae44 (diff) | |
parent | d8d57a800a2e1bd11dc4d69634d630c8e6117c39 (diff) | |
download | iced-1632826c8e70f9f1f5f1f3b3fbb5a4d421f7afbe.tar.gz iced-1632826c8e70f9f1f5f1f3b3fbb5a4d421f7afbe.tar.bz2 iced-1632826c8e70f9f1f5f1f3b3fbb5a4d421f7afbe.zip |
Merge pull request #1443 from traxys/div_canvas
Allow to replace an element instead of append to body for web rendering
Diffstat (limited to '')
-rw-r--r-- | winit/src/application.rs | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 939a50c9..ffaaa8fb 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -137,6 +137,9 @@ where runtime.enter(|| A::new(flags)) }; + #[cfg(target_arch = "wasm32")] + let target = settings.window.platform_specific.target.clone(); + let builder = settings.window.into_builder( &application.title(), event_loop.primary_monitor(), @@ -159,9 +162,20 @@ where let document = window.document().unwrap(); let body = document.body().unwrap(); - let _ = body - .append_child(&canvas) - .expect("Append canvas to HTML body"); + let target = target.and_then(|target| { + body.query_selector(&format!("#{}", target)) + .ok() + .unwrap_or(None) + }); + + let _ = match target { + Some(node) => node + .replace_child(&canvas, &node) + .expect(&format!("Could not replace #{}", node.id())), + None => body + .append_child(&canvas) + .expect("Append canvas to HTML body"), + }; } let (compositor, renderer) = C::new(compositor_settings, Some(&window))?; |