From d9c4c62bc243a58102920ff6c195ac5dd0ae40b2 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 16 Jan 2006 21:33:23 +0000 Subject: [PATCH] Allow NAV_THREE_KEY_MENU rows to do something other than set a screen, in which case we'll apply it and stay on the menu. --- stepmania/src/ScreenOptions.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index d5b392b339..cea6c0e602 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -858,6 +858,22 @@ void ScreenOptions::ProcessMenuStart( const InputEventPlus &input ) { bool bEndThisScreen = false; + if( m_OptionsNavigation == NAV_THREE_KEY_MENU ) + { + /* In NAV_THREE_KEY_MENU mode, if a row doesn't set a screen, it does + * something. Apply it now. */ + CString sScreen = GetNextScreenForSelection( input.MenuI.player ); + if( sScreen.empty() ) + { + vector vpns; + vpns.push_back( input.MenuI.player ); + ExportOptions( iCurRow, vpns ); + return; + } + + bEndThisScreen = true; + } + // If there's no exit row, then pressing Start on any row ends the screen. if( !SHOW_EXIT_ROW ) bEndThisScreen = true;