Add keyboard and gamepad shortcuts for control panel
Some checks are pending
Build / setup (push) Waiting to run
Build / build-appimage (push) Blocked by required conditions
Build / build-steamlink (push) Blocked by required conditions
Build / build-windows-macos (push) Blocked by required conditions

This commit is contained in:
Joey Yakimowich-Payne 2026-02-12 01:15:12 -07:00
commit 3767a9eac3
4 changed files with 27 additions and 0 deletions

View file

@ -443,6 +443,19 @@ void SdlInputHandler::handleControllerButtonEvent(SDL_ControllerButtonEvent* eve
return; return;
} }
if (state->buttons == (BACK_FLAG | LB_FLAG | RB_FLAG | B_FLAG)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected control panel toggle gamepad combo");
Session::get()->toggleControlPanelVisibility();
if (isGamepadInputAllowed()) {
LiSendMultiControllerEvent(state->index, m_GamepadMask,
0, 0, 0, 0, 0, 0, 0);
}
return;
}
if (state->buttons == (BACK_FLAG | LB_FLAG | RB_FLAG | Y_FLAG)) { if (state->buttons == (BACK_FLAG | LB_FLAG | RB_FLAG | Y_FLAG)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected keyboard/mouse input toggle gamepad combo"); "Detected keyboard/mouse input toggle gamepad combo");

View file

@ -86,6 +86,11 @@ SdlInputHandler::SdlInputHandler(StreamingPreferences& prefs, int streamWidth, i
m_SpecialKeyCombos[KeyComboToggleStatsOverlay].scanCode = SDL_SCANCODE_S; m_SpecialKeyCombos[KeyComboToggleStatsOverlay].scanCode = SDL_SCANCODE_S;
m_SpecialKeyCombos[KeyComboToggleStatsOverlay].enabled = true; m_SpecialKeyCombos[KeyComboToggleStatsOverlay].enabled = true;
m_SpecialKeyCombos[KeyComboToggleControlPanel].keyCombo = KeyComboToggleControlPanel;
m_SpecialKeyCombos[KeyComboToggleControlPanel].keyCode = SDLK_p;
m_SpecialKeyCombos[KeyComboToggleControlPanel].scanCode = SDL_SCANCODE_P;
m_SpecialKeyCombos[KeyComboToggleControlPanel].enabled = true;
m_SpecialKeyCombos[KeyComboToggleMouseMode].keyCombo = KeyComboToggleMouseMode; m_SpecialKeyCombos[KeyComboToggleMouseMode].keyCombo = KeyComboToggleMouseMode;
m_SpecialKeyCombos[KeyComboToggleMouseMode].keyCode = SDLK_m; m_SpecialKeyCombos[KeyComboToggleMouseMode].keyCode = SDLK_m;
m_SpecialKeyCombos[KeyComboToggleMouseMode].scanCode = SDL_SCANCODE_M; m_SpecialKeyCombos[KeyComboToggleMouseMode].scanCode = SDL_SCANCODE_M;

View file

@ -163,6 +163,7 @@ private:
KeyComboUngrabInput, KeyComboUngrabInput,
KeyComboToggleFullScreen, KeyComboToggleFullScreen,
KeyComboToggleStatsOverlay, KeyComboToggleStatsOverlay,
KeyComboToggleControlPanel,
KeyComboToggleMouseMode, KeyComboToggleMouseMode,
KeyComboToggleCursorHide, KeyComboToggleCursorHide,
KeyComboToggleMinimize, KeyComboToggleMinimize,

View file

@ -64,6 +64,14 @@ void SdlInputHandler::performSpecialKeyCombo(KeyCombo combo)
!Session::get()->getOverlayManager().isOverlayEnabled(Overlay::OverlayDebug)); !Session::get()->getOverlayManager().isOverlayEnabled(Overlay::OverlayDebug));
break; break;
case KeyComboToggleControlPanel:
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected control panel toggle combo");
if (auto session = Session::get(); session != nullptr) {
session->toggleControlPanelVisibility();
}
break;
case KeyComboToggleMouseMode: case KeyComboToggleMouseMode:
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected mouse mode toggle combo"); "Detected mouse mode toggle combo");