bool FeScriptConfigMenu::on_option_select( FeConfigContext &ctx, FeBaseConfigMenu *& submenu ) { FeMenuOpt &o = ctx.curr_opt(); if ( o.opaque == 1 ) { std::string res; FeInputMap::Command conflict( FeInputMap::LAST_COMMAND ); ctx.input_map_dialog( "Press Input", res, conflict ); if (( conflict == FeInputMap::ExitMenu ) || ( conflict == FeInputMap::ExitNoMenu )) { // Clear the mapping if the user pushed an exit button res.clear(); } o.set_value( res ); ctx.save_req = true; } else if (( o.opaque == 2 ) && ( m_configurable )) { save( ctx ); ctx.fe_settings.set_present_state( m_state ); FePresent *fep = FePresent::script_get_fep(); if ( fep ) fep->set_script_id( m_script_id ); FeVM::script_run_config_function( *m_configurable, m_file_path, m_file_name, o.opaque_str, ctx.help_msg ); } return true; }