From 36501741386c61a9fdd756690ce07879b76be311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Thu, 27 Oct 2022 00:06:35 +0200 Subject: [PATCH] do not set cursor grab on window creation if not asked for --- crates/bevy_winit/src/winit_windows.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/crates/bevy_winit/src/winit_windows.rs b/crates/bevy_winit/src/winit_windows.rs index 29455c24c907d..5d803c944b2bc 100644 --- a/crates/bevy_winit/src/winit_windows.rs +++ b/crates/bevy_winit/src/winit_windows.rs @@ -2,7 +2,8 @@ use crate::converters::convert_cursor_grab_mode; use bevy_math::{DVec2, IVec2}; use bevy_utils::HashMap; use bevy_window::{ - MonitorSelection, RawHandleWrapper, Window, WindowDescriptor, WindowId, WindowMode, + CursorGrabMode, MonitorSelection, RawHandleWrapper, Window, WindowDescriptor, WindowId, + WindowMode, }; use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle}; use winit::{ @@ -161,11 +162,14 @@ impl WinitWindows { } } - match winit_window - .set_cursor_grab(convert_cursor_grab_mode(window_descriptor.cursor_grab_mode)) - { - Ok(_) | Err(winit::error::ExternalError::NotSupported(_)) => {} - Err(err) => Err(err).unwrap(), + // Do not set the grab mode on window creation if it's none, this can fail on mobile + if window_descriptor.cursor_grab_mode != CursorGrabMode::None { + match winit_window + .set_cursor_grab(convert_cursor_grab_mode(window_descriptor.cursor_grab_mode)) + { + Ok(_) | Err(winit::error::ExternalError::NotSupported(_)) => {} + Err(err) => Err(err).unwrap(), + } } winit_window.set_cursor_visible(window_descriptor.cursor_visible);