mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2025-01-11 13:31:29 +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.
|
- On X11, the `Moved` event is no longer sent when the window is resized without changing position.
|
||||||
- `MouseCursor` and `CursorState` now implement `Default`.
|
- `MouseCursor` and `CursorState` now implement `Default`.
|
||||||
|
- `WindowBuilder::with_resizable` implemented for Windows.
|
||||||
|
|
||||||
# Version 0.15.0 (2018-05-22)
|
# 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`.
|
/// The default is `None`.
|
||||||
pub max_dimensions: Option<(u32, u32)>,
|
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.
|
/// Whether the window should be set as fullscreen upon creation.
|
||||||
///
|
///
|
||||||
/// The default is `None`.
|
/// The default is `None`.
|
||||||
|
@ -475,6 +480,7 @@ impl Default for WindowAttributes {
|
||||||
dimensions: None,
|
dimensions: None,
|
||||||
min_dimensions: None,
|
min_dimensions: None,
|
||||||
max_dimensions: None,
|
max_dimensions: None,
|
||||||
|
resizable: true,
|
||||||
title: "winit window".to_owned(),
|
title: "winit window".to_owned(),
|
||||||
maximized: false,
|
maximized: false,
|
||||||
fullscreen: None,
|
fullscreen: None,
|
||||||
|
|
|
@ -843,6 +843,10 @@ unsafe fn init(
|
||||||
style | winuser::WS_VISIBLE
|
style | winuser::WS_VISIBLE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !window.resizable {
|
||||||
|
style &= !winuser::WS_SIZEBOX;
|
||||||
|
}
|
||||||
|
|
||||||
if pl_attribs.parent.is_some() {
|
if pl_attribs.parent.is_some() {
|
||||||
style |= winuser::WS_CHILD;
|
style |= winuser::WS_CHILD;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,17 @@ impl WindowBuilder {
|
||||||
self
|
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.
|
/// Requests a specific title for the window.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn with_title<T: Into<String>>(mut self, title: T) -> WindowBuilder {
|
pub fn with_title<T: Into<String>>(mut self, title: T) -> WindowBuilder {
|
||||||
|
|
Loading…
Reference in a new issue