diff --git a/runloop.c b/runloop.c index 2989102b50..2ea2809cd6 100644 --- a/runloop.c +++ b/runloop.c @@ -922,8 +922,17 @@ static enum runloop_state runloop_check_state( else if ((!menu_event_keyboard_is_set(RETROK_F1) && runloop_cmd_menu_press(current_input, old_input, trigger_input)) || rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) { - menu_display_toggle_set_reason(MENU_TOGGLE_REASON_USER); - rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL); + if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) + { + if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) && + !rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) + rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL); + } + else + { + menu_display_toggle_set_reason(MENU_TOGGLE_REASON_USER); + rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL); + } } else menu_event_keyboard_set(false, RETROK_F1);