@@ -138,6 +138,18 @@ public override void RedrawUI(ViewState viewState)
138138 m_SaveButton . SetEnabled ( InputEditorUserSettings . autoSaveInputActionAssets == false ) ;
139139 }
140140
141+ private string SetupControlSchemeName ( string name )
142+ {
143+ //On Windows the '&' is considered an accelerator character and will always be stripped.
144+ //Since the ControlScheme menu isn't creating hotkeys, it can be safely assumed that they are meant to be text
145+ //so we want to escape the character for MenuItem
146+ if ( Application . platform == RuntimePlatform . WindowsEditor )
147+ {
148+ name = name . Replace ( "&" , "&&" ) ;
149+ }
150+ return name ;
151+ }
152+
141153 private void SetUpControlSchemesMenu ( ViewState viewState )
142154 {
143155 m_ControlSchemesToolbar . menu . MenuItems ( ) . Clear ( ) ;
@@ -151,7 +163,7 @@ private void SetUpControlSchemesMenu(ViewState viewState)
151163 m_ControlSchemesToolbar . menu . AppendAction ( "All Control Schemes" , _ => SelectControlScheme ( - 1 ) ,
152164 viewState . selectedControlSchemeIndex == - 1 ? DropdownMenuAction . Status . Checked : DropdownMenuAction . Status . Normal ) ;
153165 viewState . controlSchemes . ForEach ( ( scheme , i ) =>
154- m_ControlSchemesToolbar . menu . AppendAction ( scheme . name , _ => SelectControlScheme ( i ) ,
166+ m_ControlSchemesToolbar . menu . AppendAction ( SetupControlSchemeName ( scheme . name ) , _ => SelectControlScheme ( i ) ,
155167 viewState . selectedControlSchemeIndex == i ? DropdownMenuAction . Status . Checked : DropdownMenuAction . Status . Normal ) ) ;
156168 m_ControlSchemesToolbar . menu . AppendSeparator ( ) ;
157169 }
0 commit comments