From 58cb0286a8c7babea62baf18b6444aef68603309 Mon Sep 17 00:00:00 2001 From: Tony Jansson Date: Tue, 27 Oct 2020 04:59:14 +0200 Subject: [PATCH] Mouse grab fixes --- retroarch.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/retroarch.c b/retroarch.c index 3fb275c084..d047904254 100644 --- a/retroarch.c +++ b/retroarch.c @@ -15740,10 +15740,7 @@ static void command_event_reinit(struct rarch_state *p_rarch, #ifdef HAVE_MENU p_rarch->dispgfx.framebuf_dirty = true; if (video_fullscreen) - { - input_driver_grab_mouse(p_rarch); video_driver_hide_mouse(); - } if (p_rarch->menu_driver_alive && p_rarch->current_video->set_nonblock_state) p_rarch->current_video->set_nonblock_state( p_rarch->video_driver_data, false, @@ -17068,13 +17065,15 @@ bool command_event(enum event_command cmd, void *data) command_event(CMD_EVENT_REINIT, NULL); if (video_fullscreen) { - input_driver_grab_mouse(p_rarch); video_driver_hide_mouse(); + if (!settings->bools.video_windowed_fullscreen) + input_driver_grab_mouse(p_rarch); } else { - input_driver_ungrab_mouse(p_rarch); video_driver_show_mouse(); + if (!settings->bools.video_windowed_fullscreen) + input_driver_ungrab_mouse(p_rarch); } p_rarch->rarch_is_switching_display_mode = false; @@ -19923,10 +19922,7 @@ static bool rarch_environment_cb(unsigned cmd, void *data) /* Hide mouse cursor in fullscreen mode */ if (video_fullscreen) - { - input_driver_grab_mouse(p_rarch); video_driver_hide_mouse(); - } } break; @@ -20089,10 +20085,7 @@ static bool rarch_environment_cb(unsigned cmd, void *data) /* Hide mouse cursor in fullscreen after * a RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO call. */ if (video_fullscreen) - { - input_driver_grab_mouse(p_rarch); video_driver_hide_mouse(); - } return true; } @@ -32513,8 +32506,9 @@ static bool video_driver_init_internal(bool *video_is_threaded) if (video.fullscreen) { - input_driver_grab_mouse(p_rarch); video_driver_hide_mouse(); + if (!settings->bools.video_windowed_fullscreen) + input_driver_grab_mouse(p_rarch); } return true;