diff --git a/command.c b/command.c index 21a902bb51..d587d05b36 100644 --- a/command.c +++ b/command.c @@ -1863,6 +1863,7 @@ bool command_event(enum event_command cmd, void *data) case CMD_EVENT_OVERLAY_INIT: command_event(CMD_EVENT_OVERLAY_DEINIT, NULL); #ifdef HAVE_OVERLAY + input_overlay_free(); input_overlay_init(); #endif break; diff --git a/input/input_overlay.c b/input/input_overlay.c index 6a2e9282ec..ddf485d503 100644 --- a/input/input_overlay.c +++ b/input/input_overlay.c @@ -575,10 +575,10 @@ abort_load: void input_overlay_init(void) { - input_overlay_free(); - - if (config_get_ptr()->input.overlay_enable) - rarch_task_push_overlay_load_default(input_overlay_loaded, NULL); + settings_t *settings = config_get_ptr(); + if (!settings->input.overlay_enable) + return; + rarch_task_push_overlay_load_default(input_overlay_loaded, NULL); } /**