summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 16:55:16 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 21:37:16 +0700
commit26d95fdc4b7b6a66431d45f49edd0cc3ef19823f (patch)
tree555a79d67e516a789d6533b9a5113000fc102f74 /winit
parent825c7749ff364cf1f7ae5cab0c25f27ed85c7d82 (diff)
downloadiced-26d95fdc4b7b6a66431d45f49edd0cc3ef19823f.tar.gz
iced-26d95fdc4b7b6a66431d45f49edd0cc3ef19823f.tar.bz2
iced-26d95fdc4b7b6a66431d45f49edd0cc3ef19823f.zip
Append `Canvas` to `<body>` when targetting Wasm in `iced_winit`
Diffstat (limited to 'winit')
-rw-r--r--winit/Cargo.toml4
-rw-r--r--winit/src/application.rs15
2 files changed, 19 insertions, 0 deletions
diff --git a/winit/Cargo.toml b/winit/Cargo.toml
index bfcfacbc..46f0cdb1 100644
--- a/winit/Cargo.toml
+++ b/winit/Cargo.toml
@@ -37,3 +37,7 @@ path = "../futures"
[target.'cfg(target_os = "windows")'.dependencies.winapi]
version = "0.3.6"
+
+[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
+version = "0.3"
+features = ["Document", "Window"]
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 53b7a6c7..7ddb9947 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -148,6 +148,21 @@ where
.build(&event_loop)
.map_err(Error::WindowCreationFailed)?;
+ #[cfg(target_arch = "wasm32")]
+ {
+ use winit::platform::web::WindowExtWebSys;
+
+ let canvas = window.canvas();
+
+ let window = web_sys::window().unwrap();
+ let document = window.document().unwrap();
+ let body = document.body().unwrap();
+
+ let _ = body
+ .append_child(&canvas)
+ .expect("Append canvas to HTML body");
+ }
+
let mut clipboard = Clipboard::connect(&window);
run_command(