mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 06:11:30 +11:00
9698d0a8d8
Fixes #282 Some tiling window managers (i3, dwm, etc.) determine how a window should behave based on its name. If the name is set after mapping, then window managers will check the name before we set it, followed by them detecting it as a change when the name is actually set. That results in the window briefly behaving in an unexpected way, followed by a rapid switch to the expected behavior. In accordance to section 4.1.2 of ICCCM, the name, decorations, size hints, and window deletion redirection have all been moved up to be set before mapping. |
||
---|---|---|
.circleci | ||
examples | ||
src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
README.md |
winit - Cross-platform window creation and management in Rust
[dependencies]
winit = "0.7"
Documentation
Usage
Winit is a window creation and management library. It can create windows and lets you handle events (for example: the window being resized, a key being pressed, a mouse mouvement, etc.) produced by window.
Winit is designed to be a low-level brick in a hierarchy of libraries. Consequently, in order to show something on the window you need to use the platform-specific getters provided by winit, or another library.
extern crate winit;
fn main() {
let mut events_loop = winit::EventsLoop::new();
let window = winit::Window::new(&events_loop).unwrap();
events_loop.run_forever(|event| {
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::Closed, .. } => {
winit::ControlFlow::Break
},
_ => winit::ControlFlow::Continue,
}
});
}
Platform-specific usage
Emscripten and WebAssembly
Building a binary will yield a .js
file. In order to use it in an HTML file, you need to:
- Put a
<canvas id="my_id"></canvas>
element somewhere. A canvas corresponds to a winit "window". - Write a Javascript code that creates a global variable named
Module
. SetModule.canvas
to the ID of the<canvas>
element (in the example this would be"my_id"
). More information here. - Make sure that you insert the
.js
file generated by Rust after theModule
variable is created.