diff options
Diffstat (limited to 'winit')
-rw-r--r-- | winit/Cargo.toml | 4 | ||||
-rw-r--r-- | winit/src/application.rs | 15 |
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( |