From cb98d6aceca042dc3f1fe464faf5072d796396b2 Mon Sep 17 00:00:00 2001 From: Ar37-rs Date: Sat, 24 Sep 2022 16:23:45 +0700 Subject: [PATCH 1/2] Update Winit 0.27.3 --- crates/bevy_winit/Cargo.toml | 2 +- crates/bevy_winit/src/lib.rs | 16 ++++++++++++---- crates/bevy_winit/src/winit_windows.rs | 12 ++++++++---- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/crates/bevy_winit/Cargo.toml b/crates/bevy_winit/Cargo.toml index 5c7014ecbfa8a..1aa59c6e2e3ff 100644 --- a/crates/bevy_winit/Cargo.toml +++ b/crates/bevy_winit/Cargo.toml @@ -22,7 +22,7 @@ bevy_window = { path = "../bevy_window", version = "0.9.0-dev" } bevy_utils = { path = "../bevy_utils", version = "0.9.0-dev" } # other -winit = { version = "0.26.0", default-features = false } +winit = { version = "0.27.3", default-features = false } approx = { version = "0.5.0", default-features = false } raw-window-handle = "0.4.2" diff --git a/crates/bevy_winit/src/lib.rs b/crates/bevy_winit/src/lib.rs index 66804c5a426b4..bbc21fa1906a5 100644 --- a/crates/bevy_winit/src/lib.rs +++ b/crates/bevy_winit/src/lib.rs @@ -34,6 +34,7 @@ use winit::{ dpi::{LogicalPosition, LogicalSize, PhysicalPosition}, event::{self, DeviceEvent, Event, StartCause, WindowEvent}, event_loop::{ControlFlow, EventLoop, EventLoopWindowTarget}, + window::CursorGrabMode, }; #[derive(Default)] @@ -138,10 +139,17 @@ fn change_window( window.set_cursor_icon(converters::convert_cursor_icon(icon)); } bevy_window::WindowCommand::SetCursorLockMode { locked } => { - let window = winit_windows.get_window(id).unwrap(); - window - .set_cursor_grab(locked) - .unwrap_or_else(|e| error!("Unable to un/grab cursor: {}", e)); + if locked { + let window = winit_windows.get_window(id).unwrap(); + window + .set_cursor_grab(CursorGrabMode::Confined) + .unwrap_or_else(|e| error!("Unable to grab cursor: {}", e)); + } else { + let window = winit_windows.get_window(id).unwrap(); + window + .set_cursor_grab(CursorGrabMode::None) + .unwrap_or_else(|e| error!("Unable to ungrab cursor: {}", e)); + } } bevy_window::WindowCommand::SetCursorVisibility { visible } => { let window = winit_windows.get_window(id).unwrap(); diff --git a/crates/bevy_winit/src/winit_windows.rs b/crates/bevy_winit/src/winit_windows.rs index 4467574874c61..ef9e471bdeb99 100644 --- a/crates/bevy_winit/src/winit_windows.rs +++ b/crates/bevy_winit/src/winit_windows.rs @@ -4,7 +4,7 @@ use bevy_window::{MonitorSelection, Window, WindowDescriptor, WindowId, WindowMo use raw_window_handle::HasRawWindowHandle; use winit::{ dpi::{LogicalPosition, LogicalSize, PhysicalPosition, PhysicalSize}, - window::Fullscreen, + window::{CursorGrabMode, Fullscreen}, }; #[derive(Debug, Default)] @@ -159,7 +159,7 @@ impl WinitWindows { } if window_descriptor.cursor_locked { - match winit_window.set_cursor_grab(true) { + match winit_window.set_cursor_grab(CursorGrabMode::Locked) { Ok(_) | Err(winit::error::ExternalError::NotSupported(_)) => {} Err(err) => Err(err).unwrap(), } @@ -241,7 +241,9 @@ pub fn get_fitting_videomode( match abs_diff(a.size().width, width).cmp(&abs_diff(b.size().width, width)) { Equal => { match abs_diff(a.size().height, height).cmp(&abs_diff(b.size().height, height)) { - Equal => b.refresh_rate().cmp(&a.refresh_rate()), + Equal => b + .refresh_rate_millihertz() + .cmp(&a.refresh_rate_millihertz()), default => default, } } @@ -258,7 +260,9 @@ pub fn get_best_videomode(monitor: &winit::monitor::MonitorHandle) -> winit::mon use std::cmp::Ordering::*; match b.size().width.cmp(&a.size().width) { Equal => match b.size().height.cmp(&a.size().height) { - Equal => b.refresh_rate().cmp(&a.refresh_rate()), + Equal => b + .refresh_rate_millihertz() + .cmp(&a.refresh_rate_millihertz()), default => default, }, default => default, From 9910c652c6f42fffd55f1773678b02592269f35d Mon Sep 17 00:00:00 2001 From: Ar37-rs Date: Sat, 24 Sep 2022 16:48:45 +0700 Subject: [PATCH 2/2] Update Winit 0.27.3 on wasm as well. --- crates/bevy_winit/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_winit/Cargo.toml b/crates/bevy_winit/Cargo.toml index 1aa59c6e2e3ff..a84539caf472d 100644 --- a/crates/bevy_winit/Cargo.toml +++ b/crates/bevy_winit/Cargo.toml @@ -27,7 +27,7 @@ approx = { version = "0.5.0", default-features = false } raw-window-handle = "0.4.2" [target.'cfg(target_arch = "wasm32")'.dependencies] -winit = { version = "0.26.0", default-features = false } +winit = { version = "0.27.3", default-features = false } wasm-bindgen = { version = "0.2" } web-sys = "0.3" crossbeam-channel = "0.5"