Skip to content

Commit bf4945f

Browse files
committed
[multiplayer] Handle keyboard button input correctly
1 parent 1d886dc commit bf4945f

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

Main/src/MultiplayerScreen.cpp

+18-3
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,6 @@ void MultiplayerScreen::OnKeyPressed(SDL_Scancode code)
11111111
else if (code == SDL_SCANCODE_ESCAPE)
11121112
{
11131113
int backScancode = g_gameConfig.GetInt(GameConfigKeys::Key_Back);
1114-
// SDL_Keycode k = SDL_GetKeyFromScancode(g_gameConfig.GetInt(GameConfigKeys::Key_Back));
11151114

11161115
if (g_gameConfig.GetEnum<Enum_InputDevice>(GameConfigKeys::ButtonInputDevice) != InputDevice::Keyboard
11171116
|| backScancode != SDL_SCANCODE_ESCAPE)
@@ -1203,8 +1202,24 @@ void MultiplayerScreen::m_OnButtonPressed(Input::Button buttonCode)
12031202
}
12041203
break;
12051204
case Input::Button::Back:
1206-
if (m_returnToMainList())
1207-
return;
1205+
switch (m_screenState)
1206+
{
1207+
case MultiplayerScreenState::JOIN_PASSWORD:
1208+
case MultiplayerScreenState::NEW_ROOM_NAME:
1209+
case MultiplayerScreenState::NEW_ROOM_PASSWORD:
1210+
case MultiplayerScreenState::SET_USERNAME:
1211+
if (g_gameConfig.GetEnum<Enum_InputDevice>(GameConfigKeys::ButtonInputDevice) == InputDevice::Keyboard)
1212+
{
1213+
// In this case we want them to hit escape so we don't exit on text inputs
1214+
break;
1215+
}
1216+
// Otherwise fall though
1217+
default:
1218+
if (m_returnToMainList())
1219+
return;
1220+
break;
1221+
}
1222+
break;
12081223
default:
12091224
break;
12101225
}

0 commit comments

Comments
 (0)