diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 66b8059512..85c7656a70 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -875,6 +875,7 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) iterate->action = pending_iter.action; pending_iter.action = MENU_ACTION_NOOP; } + menu_input_ctl(MENU_INPUT_CTL_SET_FRAME_INPUT, iterate); if (menu_driver_ctx->iterate(menu_driver_data, menu_userdata, iterate->action) == -1) return false; diff --git a/menu/menu_input.c b/menu/menu_input.c index 9a1ec8843b..88b417ac5b 100644 --- a/menu/menu_input.c +++ b/menu/menu_input.c @@ -148,7 +148,8 @@ typedef struct menu_input } delay; } menu_input_t; -static unsigned bind_port; +static menu_ctx_iterate_t menu_input_frame; +static unsigned bind_port; static menu_input_t *menu_input_get_ptr(void) { @@ -667,6 +668,12 @@ bool menu_input_ctl(enum menu_input_ctl_state state, void *data) switch (state) { + case MENU_INPUT_CTL_SET_FRAME_INPUT: + if (!data) + return false; + memcpy(&menu_input_frame, + data, sizeof(menu_ctx_iterate_t)); + break; case MENU_INPUT_CTL_BIND_SET_MIN_MAX: { menu_input_ctx_bind_limits_t *lim = diff --git a/menu/menu_input.h b/menu/menu_input.h index 7ffec07823..52ecfbf17c 100644 --- a/menu/menu_input.h +++ b/menu/menu_input.h @@ -91,7 +91,8 @@ enum menu_input_ctl_state MENU_INPUT_CTL_BIND_ALL, MENU_INPUT_CTL_BIND_ITERATE, MENU_INPUT_CTL_BIND_SET_MIN_MAX, - MENU_INPUT_CTL_START_LINE + MENU_INPUT_CTL_START_LINE, + MENU_INPUT_CTL_SET_FRAME_INPUT }; typedef struct menu_input_ctx_hitbox