summaryrefslogtreecommitdiffstats
path: root/winit/src/application.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-11-05 01:56:25 +0100
committerLibravatar GitHub <noreply@github.com>2022-11-05 01:56:25 +0100
commit1632826c8e70f9f1f5f1f3b3fbb5a4d421f7afbe (patch)
tree8a0c6c4eda5ffd349d65c9b0d4273982a21c79c4 /winit/src/application.rs
parentd222b5c8b0befab665c20ba0112b28199df0ae44 (diff)
parentd8d57a800a2e1bd11dc4d69634d630c8e6117c39 (diff)
downloadiced-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.rs20
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))?;