summaryrefslogtreecommitdiffstats
path: root/winit/src/application.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-11-05 01:43:28 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-11-05 01:43:28 +0100
commitd8d57a800a2e1bd11dc4d69634d630c8e6117c39 (patch)
tree8a0c6c4eda5ffd349d65c9b0d4273982a21c79c4 /winit/src/application.rs
parentab2872fe2be5b694f65125b86e5c03b1f3506ac3 (diff)
downloadiced-d8d57a800a2e1bd11dc4d69634d630c8e6117c39.tar.gz
iced-d8d57a800a2e1bd11dc4d69634d630c8e6117c39.tar.bz2
iced-d8d57a800a2e1bd11dc4d69634d630c8e6117c39.zip
Allow providing a DOM identifier as a `target` for Wasm
Diffstat (limited to '')
-rw-r--r--winit/src/application.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index db0ab938..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,10 +162,16 @@ where
let document = window.document().unwrap();
let body = document.body().unwrap();
- let _ = match body.query_selector("#iced_root").unwrap() {
- Some(e) => body
- .replace_child(&canvas, &e)
- .expect("Could not replace iced_root"),
+ 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"),