mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-23 22:01:31 +11:00
* Windows: implement with_resizable (#540) * Fixed typo
This commit is contained in:
parent
bbfe57400d
commit
58a00bffbb
|
@ -2,6 +2,7 @@
|
|||
|
||||
- On X11, the `Moved` event is no longer sent when the window is resized without changing position.
|
||||
- `MouseCursor` and `CursorState` now implement `Default`.
|
||||
- `WindowBuilder::with_resizable` implemented for Windows.
|
||||
|
||||
# Version 0.15.0 (2018-05-22)
|
||||
|
||||
|
|
24
examples/no_resize.rs
Normal file
24
examples/no_resize.rs
Normal file
|
@ -0,0 +1,24 @@
|
|||
extern crate winit;
|
||||
|
||||
fn main() {
|
||||
let mut events_loop = winit::EventsLoop::new();
|
||||
|
||||
let _window = winit::WindowBuilder::new()
|
||||
.with_title("A non-resizable window!")
|
||||
.with_dimensions(200, 200)
|
||||
.with_resizable(false)
|
||||
.build(&events_loop)
|
||||
.unwrap();
|
||||
|
||||
events_loop.run_forever(|event| {
|
||||
println!("{:?}", event);
|
||||
|
||||
match event {
|
||||
winit::Event::WindowEvent {
|
||||
event: winit::WindowEvent::CloseRequested,
|
||||
..
|
||||
} => winit::ControlFlow::Break,
|
||||
_ => winit::ControlFlow::Continue,
|
||||
}
|
||||
});
|
||||
}
|
|
@ -422,6 +422,11 @@ pub struct WindowAttributes {
|
|||
/// The default is `None`.
|
||||
pub max_dimensions: Option<(u32, u32)>,
|
||||
|
||||
/// [Windows only] Whether the window is resizable or not
|
||||
///
|
||||
/// The default is `true`.
|
||||
pub resizable: bool,
|
||||
|
||||
/// Whether the window should be set as fullscreen upon creation.
|
||||
///
|
||||
/// The default is `None`.
|
||||
|
@ -475,6 +480,7 @@ impl Default for WindowAttributes {
|
|||
dimensions: None,
|
||||
min_dimensions: None,
|
||||
max_dimensions: None,
|
||||
resizable: true,
|
||||
title: "winit window".to_owned(),
|
||||
maximized: false,
|
||||
fullscreen: None,
|
||||
|
|
|
@ -843,6 +843,10 @@ unsafe fn init(
|
|||
style | winuser::WS_VISIBLE
|
||||
};
|
||||
|
||||
if !window.resizable {
|
||||
style &= !winuser::WS_SIZEBOX;
|
||||
}
|
||||
|
||||
if pl_attribs.parent.is_some() {
|
||||
style |= winuser::WS_CHILD;
|
||||
}
|
||||
|
|
|
@ -49,6 +49,17 @@ impl WindowBuilder {
|
|||
self
|
||||
}
|
||||
|
||||
/// Sets whether the window is resizable or not
|
||||
///
|
||||
/// ## Platform-specific
|
||||
///
|
||||
/// This only has an effect on Windows.
|
||||
#[inline]
|
||||
pub fn with_resizable(mut self, resizable: bool) -> WindowBuilder {
|
||||
self.window.resizable = resizable;
|
||||
self
|
||||
}
|
||||
|
||||
/// Requests a specific title for the window.
|
||||
#[inline]
|
||||
pub fn with_title<T: Into<String>>(mut self, title: T) -> WindowBuilder {
|
||||
|
|
Loading…
Reference in a new issue