Allow introspection of WindowBuilder attributes
Makes WindowAttributes public and adds window_attributes() getter to WindowBuilder. In version 0.27, the WindowAttributes struct was made private, but this removed the ability to introspect the default WindowBuilder values.
This commit is contained in:
parent
b457329003
commit
422c6b1987
8 changed files with 18 additions and 10 deletions
|
|
@ -455,7 +455,7 @@ impl WinitUIWindow {
|
|||
|
||||
this.setRootViewController(Some(view_controller));
|
||||
|
||||
match window_attributes.fullscreen {
|
||||
match window_attributes.fullscreen.clone().map(Into::into) {
|
||||
Some(Fullscreen::Exclusive(ref video_mode)) => {
|
||||
let monitor = video_mode.monitor();
|
||||
let screen = monitor.ui_screen();
|
||||
|
|
|
|||
|
|
@ -416,7 +416,8 @@ impl Window {
|
|||
// TODO: transparency, visible
|
||||
|
||||
let main_screen = UIScreen::main(mtm);
|
||||
let screen = match window_attributes.fullscreen {
|
||||
let fullscreen = window_attributes.fullscreen.clone().map(Into::into);
|
||||
let screen = match fullscreen {
|
||||
Some(Fullscreen::Exclusive(ref video_mode)) => video_mode.monitor.ui_screen(),
|
||||
Some(Fullscreen::Borderless(Some(ref monitor))) => monitor.ui_screen(),
|
||||
Some(Fullscreen::Borderless(None)) | None => &main_screen,
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@ impl Window {
|
|||
window.set_title(attributes.title);
|
||||
|
||||
// Set fullscreen/maximized if so was requested.
|
||||
match attributes.fullscreen {
|
||||
match attributes.fullscreen.map(Into::into) {
|
||||
Some(Fullscreen::Exclusive(_)) => {
|
||||
warn!("`Fullscreen::Exclusive` is ignored on Wayland")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -484,7 +484,8 @@ impl UnownedWindow {
|
|||
window.set_maximized_inner(window_attrs.maximized).queue();
|
||||
}
|
||||
if window_attrs.fullscreen.is_some() {
|
||||
if let Some(flusher) = window.set_fullscreen_inner(window_attrs.fullscreen.clone())
|
||||
if let Some(flusher) =
|
||||
window.set_fullscreen_inner(window_attrs.fullscreen.clone().map(Into::into))
|
||||
{
|
||||
flusher.queue()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ impl WinitWindow {
|
|||
}
|
||||
|
||||
let this = autoreleasepool(|_| {
|
||||
let screen = match &attrs.fullscreen {
|
||||
let screen = match attrs.fullscreen.clone().map(Into::into) {
|
||||
Some(Fullscreen::Borderless(Some(monitor)))
|
||||
| Some(Fullscreen::Exclusive(VideoMode { monitor, .. })) => {
|
||||
monitor.ns_screen().or_else(NSScreen::main)
|
||||
|
|
@ -459,7 +459,7 @@ impl WinitWindow {
|
|||
let delegate = WinitWindowDelegate::new(&this, attrs.fullscreen.is_some());
|
||||
|
||||
// Set fullscreen mode after we setup everything
|
||||
this.set_fullscreen(attrs.fullscreen);
|
||||
this.set_fullscreen(attrs.fullscreen.map(Into::into));
|
||||
|
||||
// Setting the window as key has to happen *after* we set the fullscreen
|
||||
// state, since otherwise we'll briefly see the window at normal size
|
||||
|
|
|
|||
|
|
@ -1011,7 +1011,7 @@ impl<'a, T: 'static> InitData<'a, T> {
|
|||
win.set_enabled_buttons(attributes.enabled_buttons);
|
||||
|
||||
if attributes.fullscreen.is_some() {
|
||||
win.set_fullscreen(attributes.fullscreen);
|
||||
win.set_fullscreen(attributes.fullscreen.map(Into::into));
|
||||
force_window_active(win.window.0);
|
||||
} else {
|
||||
let size = attributes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue