Fix shortcut translation so we don't eat Ctrl+C for RAIntegration windows

This commit is contained in:
Henrik Rydgård
2024-04-05 22:41:08 +02:00
parent d39b606931
commit 770e5b4f4a
8 changed files with 18 additions and 14 deletions
+1 -1
View File
@@ -315,7 +315,7 @@ static const ConfigSetting achievementSettings[] = {
// Core settings // Core settings
ConfigSetting("AchievementsEnable", &g_Config.bAchievementsEnable, true, CfgFlag::DEFAULT), ConfigSetting("AchievementsEnable", &g_Config.bAchievementsEnable, true, CfgFlag::DEFAULT),
ConfigSetting("AchievementsEnableRAIntegration", &g_Config.bAchievementsEnableRAIntegration, false, CfgFlag::DEFAULT), ConfigSetting("AchievementsEnableRAIntegration", &g_Config.bAchievementsEnableRAIntegration, false, CfgFlag::DEFAULT),
ConfigSetting("AchievementsChallengeMode", &g_Config.bAchievementsChallengeMode, true, CfgFlag::PER_GAME | CfgFlag::DEFAULT), ConfigSetting("AchievementsChallengeMode", &g_Config.bAchievementsHardcoreMode, true, CfgFlag::PER_GAME | CfgFlag::DEFAULT),
ConfigSetting("AchievementsEncoreMode", &g_Config.bAchievementsEncoreMode, false, CfgFlag::PER_GAME | CfgFlag::DEFAULT), ConfigSetting("AchievementsEncoreMode", &g_Config.bAchievementsEncoreMode, false, CfgFlag::PER_GAME | CfgFlag::DEFAULT),
ConfigSetting("AchievementsUnofficial", &g_Config.bAchievementsUnofficial, false, CfgFlag::PER_GAME | CfgFlag::DEFAULT), ConfigSetting("AchievementsUnofficial", &g_Config.bAchievementsUnofficial, false, CfgFlag::PER_GAME | CfgFlag::DEFAULT),
ConfigSetting("AchievementsLogBadMemReads", &g_Config.bAchievementsLogBadMemReads, false, CfgFlag::DEFAULT), ConfigSetting("AchievementsLogBadMemReads", &g_Config.bAchievementsLogBadMemReads, false, CfgFlag::DEFAULT),
+1 -1
View File
@@ -522,7 +522,7 @@ public:
// Retro Achievement settings // Retro Achievement settings
// Copied from Duckstation, we might want to remove some. // Copied from Duckstation, we might want to remove some.
bool bAchievementsEnable; bool bAchievementsEnable;
bool bAchievementsChallengeMode; bool bAchievementsHardcoreMode;
bool bAchievementsEncoreMode; bool bAchievementsEncoreMode;
bool bAchievementsUnofficial; bool bAchievementsUnofficial;
bool bAchievementsSoundEffects; bool bAchievementsSoundEffects;
+7 -2
View File
@@ -509,7 +509,7 @@ static void raintegration_event_handler(const rc_client_raintegration_event_t *e
// Hardcore mode has been changed (either directly by the user, or disabled through the use of the tools). // Hardcore mode has been changed (either directly by the user, or disabled through the use of the tools).
// The frontend doesn't necessarily need to know that this value changed, they can still query it whenever // The frontend doesn't necessarily need to know that this value changed, they can still query it whenever
// it's appropriate, but the event lets the frontend do things like enable/disable rewind or cheats. // it's appropriate, but the event lets the frontend do things like enable/disable rewind or cheats.
// handle_hardcore_changed(); g_Config.bAchievementsHardcoreMode = rc_client_get_hardcore_enabled(client);
break; break;
default: default:
ERROR_LOG(ACHIEVEMENTS, "Unsupported raintegration event %u\n", event->type); ERROR_LOG(ACHIEVEMENTS, "Unsupported raintegration event %u\n", event->type);
@@ -578,6 +578,11 @@ void Initialize() {
rc_client_set_event_handler(g_rcClient, event_handler_callback); rc_client_set_event_handler(g_rcClient, event_handler_callback);
// Set initial settings properly. Hardcore mode is checked by RAIntegration.
rc_client_set_hardcore_enabled(g_rcClient, g_Config.bAchievementsHardcoreMode ? 1 : 0);
rc_client_set_encore_mode_enabled(g_rcClient, g_Config.bAchievementsEncoreMode ? 1 : 0);
rc_client_set_unofficial_enabled(g_rcClient, g_Config.bAchievementsUnofficial ? 1 : 0);
#ifdef RC_CLIENT_SUPPORTS_RAINTEGRATION #ifdef RC_CLIENT_SUPPORTS_RAINTEGRATION
if (g_Config.bAchievementsEnableRAIntegration) { if (g_Config.bAchievementsEnableRAIntegration) {
wchar_t szFilePath[MAX_PATH]; wchar_t szFilePath[MAX_PATH];
@@ -963,7 +968,7 @@ void SetGame(const Path &path, IdentifiedFileType fileType, FileLoader *fileLoad
} }
// Apply pre-load settings. // Apply pre-load settings.
rc_client_set_hardcore_enabled(g_rcClient, g_Config.bAchievementsChallengeMode ? 1 : 0); rc_client_set_hardcore_enabled(g_rcClient, g_Config.bAchievementsHardcoreMode ? 1 : 0);
rc_client_set_encore_mode_enabled(g_rcClient, g_Config.bAchievementsEncoreMode ? 1 : 0); rc_client_set_encore_mode_enabled(g_rcClient, g_Config.bAchievementsEncoreMode ? 1 : 0);
rc_client_set_unofficial_enabled(g_rcClient, g_Config.bAchievementsUnofficial ? 1 : 0); rc_client_set_unofficial_enabled(g_rcClient, g_Config.bAchievementsUnofficial ? 1 : 0);
+1 -1
View File
@@ -337,7 +337,7 @@ void RetroAchievementsSettingsScreen::CreateAccountTab(UI::ViewGroup *viewGroup)
RecreateViews(); RecreateViews();
return UI::EVENT_DONE; return UI::EVENT_DONE;
}); });
viewGroup->Add(new CheckBox(&g_Config.bAchievementsChallengeMode, ac->T("Hardcore Mode (no savestates)")))->SetEnabledPtr(&g_Config.bAchievementsEnable); viewGroup->Add(new CheckBox(&g_Config.bAchievementsHardcoreMode, ac->T("Hardcore Mode (no savestates)")))->SetEnabledPtr(&g_Config.bAchievementsEnable);
viewGroup->Add(new CheckBox(&g_Config.bAchievementsSoundEffects, ac->T("Sound Effects")))->SetEnabledPtr(&g_Config.bAchievementsEnable); // not yet implemented viewGroup->Add(new CheckBox(&g_Config.bAchievementsSoundEffects, ac->T("Sound Effects")))->SetEnabledPtr(&g_Config.bAchievementsEnable); // not yet implemented
viewGroup->Add(new ItemHeader(di->T("Links"))); viewGroup->Add(new ItemHeader(di->T("Links")));
+3 -2
View File
@@ -676,9 +676,10 @@ BOOL CDisasm::DlgProc(UINT message, WPARAM wParam, LPARAM lParam)
Show(false); Show(false);
return TRUE; return TRUE;
case WM_ACTIVATE: case WM_ACTIVATE:
if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) {
{
g_activeWindow = WINDOW_CPUDEBUGGER; g_activeWindow = WINDOW_CPUDEBUGGER;
} else {
g_activeWindow = WINDOW_OTHER;
} }
break; break;
+2
View File
@@ -1073,6 +1073,8 @@ BOOL CGEDebugger::DlgProc(UINT message, WPARAM wParam, LPARAM lParam) {
case WM_ACTIVATE: case WM_ACTIVATE:
if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) { if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) {
g_activeWindow = WINDOW_GEDEBUGGER; g_activeWindow = WINDOW_GEDEBUGGER;
} else {
g_activeWindow = WINDOW_OTHER;
} }
break; break;
+2 -6
View File
@@ -599,12 +599,6 @@ namespace MainWindow
static bool firstErase = true; static bool firstErase = true;
switch (message) { switch (message) {
case WM_ACTIVATE:
if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) {
g_activeWindow = WINDOW_MAINWINDOW;
}
break;
case WM_SIZE: case WM_SIZE:
break; break;
@@ -829,6 +823,8 @@ namespace MainWindow
} }
g_activeWindow = WINDOW_MAINWINDOW; g_activeWindow = WINDOW_MAINWINDOW;
pause = false; pause = false;
} else {
g_activeWindow = WINDOW_OTHER;
} }
if (!noFocusPause && g_Config.bPauseOnLostFocus && GetUIState() == UISTATE_INGAME) { if (!noFocusPause && g_Config.bPauseOnLostFocus && GetUIState() == UISTATE_INGAME) {
if (pause != Core_IsStepping()) { // != is xor for bools if (pause != Core_IsStepping()) { // != is xor for bools
+1 -1
View File
@@ -37,4 +37,4 @@ extern CGEDebugger* geDebuggerWindow;
extern int g_activeWindow; extern int g_activeWindow;
enum { WINDOW_MAINWINDOW, WINDOW_CPUDEBUGGER, WINDOW_GEDEBUGGER }; enum { WINDOW_MAINWINDOW, WINDOW_CPUDEBUGGER, WINDOW_GEDEBUGGER, WINDOW_OTHER };