ScreenType is being overloaded in incompatible ways:
- the editor sets "system_menu" to trick StepMania.cpp into not allowing the operator menu button, to prevent losing data; - the editor also sets "gameplay" in "playback" mode to influence ScreenSyncOverlay and ScreenDebugOverlay; this breaks the above, allowing scroll lock in play mode. A similar problem happens when we push screens: scroll lock works in the MiniMenus in the editor. It's semantically unintuitive to call the editor a "system_menu", anyway. Split out AllowOperatorMenuButton, and use it directly. Check all screens, and don't allow it if any screen on the stack disallows it.
This commit is contained in:
@@ -1223,7 +1223,7 @@ bool HandleGlobalInputs( const InputEventPlus &input )
|
||||
/* Global operator key, to get quick access to the options menu. Don't
|
||||
* do this if we're on a "system menu", which includes the editor
|
||||
* (to prevent quitting without storing changes). */
|
||||
if( SCREENMAN->GetTopScreen()->GetScreenType() != system_menu )
|
||||
if( SCREENMAN->AllowOperatorMenuButton() )
|
||||
{
|
||||
SCREENMAN->SystemMessage( SERVICE_SWITCH_PRESSED );
|
||||
GAMESTATE->Reset();
|
||||
|
||||
Reference in New Issue
Block a user