From 55f348f01498c3675ba203e272754fa12c5707da Mon Sep 17 00:00:00 2001 From: relrelb Date: Fri, 8 Jan 2021 11:49:17 +0200 Subject: [PATCH] desktop: Prevent entering/exiting fullscreen repeatedly --- desktop/src/main.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/desktop/src/main.rs b/desktop/src/main.rs index 81a2f3806..25d4e9d9b 100644 --- a/desktop/src/main.rs +++ b/desktop/src/main.rs @@ -250,6 +250,7 @@ fn run_player(opt: Opt) -> Result<(), Box> { let mut time = Instant::now(); let mut next_frame_time = Instant::now(); let mut minimized = false; + let mut fullscreen_down = false; loop { // Poll UI events event_loop.run(move |event, _window_target, control_flow| { @@ -361,10 +362,24 @@ fn run_player(opt: Opt) -> Result<(), Box> { }, .. } if modifiers.alt() => { - window.set_fullscreen(match window.fullscreen() { - None => Some(Fullscreen::Borderless(None)), - Some(_) => None, - }); + if !fullscreen_down { + window.set_fullscreen(match window.fullscreen() { + None => Some(Fullscreen::Borderless(None)), + Some(_) => None, + }); + } + fullscreen_down = true; + } + WindowEvent::KeyboardInput { + input: + KeyboardInput { + state: ElementState::Released, + virtual_keycode: Some(VirtualKeyCode::Return), + .. + }, + .. + } if fullscreen_down => { + fullscreen_down = false; } WindowEvent::KeyboardInput { input: