Add quit-app-and-exit shortcut Ctrl+Alt+Shift+E

Add a shortcut to quit the current app and exit Moonlight entirely.
This commit is contained in:
James Poje
2025-03-20 01:13:04 -04:00
committed by Cameron Gutman
parent 29b1304337
commit 9c9bfd8428
5 changed files with 36 additions and 1 deletions

View File

@@ -111,6 +111,11 @@ SdlInputHandler::SdlInputHandler(StreamingPreferences& prefs, int streamWidth, i
m_SpecialKeyCombos[KeyComboTogglePointerRegionLock].scanCode = SDL_SCANCODE_L;
m_SpecialKeyCombos[KeyComboTogglePointerRegionLock].enabled = true;
m_SpecialKeyCombos[KeyComboQuitAndExit].keyCombo = KeyComboQuitAndExit;
m_SpecialKeyCombos[KeyComboQuitAndExit].keyCode = SDLK_e;
m_SpecialKeyCombos[KeyComboQuitAndExit].scanCode = SDL_SCANCODE_E;
m_SpecialKeyCombos[KeyComboQuitAndExit].enabled = true;
m_OldIgnoreDevices = SDL_GetHint(SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES);
m_OldIgnoreDevicesExcept = SDL_GetHint(SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT);

View File

@@ -164,6 +164,7 @@ private:
KeyComboToggleMinimize,
KeyComboPasteText,
KeyComboTogglePointerRegionLock,
KeyComboQuitAndExit,
KeyComboMax
};

View File

@@ -139,6 +139,20 @@ void SdlInputHandler::performSpecialKeyCombo(KeyCombo combo)
updatePointerRegionLock();
break;
case KeyComboQuitAndExit:
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Detected quitAndExit key combo");
// Indicate that we want to exit afterwards
Session::get()->setShouldExitAfterQuit();
// Push a quit event to the main loop
SDL_Event quitExitEvent;
quitExitEvent.type = SDL_QUIT;
quitExitEvent.quit.timestamp = SDL_GetTicks();
SDL_PushEvent(&quitExitEvent);
break;
default:
Q_UNREACHABLE();
}