hotkeys: Trigger actions on a separate thread

This commit is contained in:
Narr the Reg 2022-04-23 11:56:30 -05:00
parent a1ee9799bc
commit 4de43e4d4a

View file

@ -933,8 +933,9 @@ void GMainWindow::LinkActionShortcut(QAction* action, const QString& action_name
auto* controller = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1); auto* controller = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
const auto* controller_hotkey = const auto* controller_hotkey =
hotkey_registry.GetControllerHotkey(main_window, action_name, controller); hotkey_registry.GetControllerHotkey(main_window, action_name, controller);
connect(controller_hotkey, &ControllerShortcut::Activated, this, connect(
[action] { action->trigger(); }); controller_hotkey, &ControllerShortcut::Activated, this, [action] { action->trigger(); },
Qt::QueuedConnection);
} }
void GMainWindow::InitializeHotkeys() { void GMainWindow::InitializeHotkeys() {
@ -961,7 +962,8 @@ void GMainWindow::InitializeHotkeys() {
const auto* controller_hotkey = const auto* controller_hotkey =
hotkey_registry.GetControllerHotkey(main_window, action_name, controller); hotkey_registry.GetControllerHotkey(main_window, action_name, controller);
connect(hotkey, &QShortcut::activated, this, function); connect(hotkey, &QShortcut::activated, this, function);
connect(controller_hotkey, &ControllerShortcut::Activated, this, function); connect(controller_hotkey, &ControllerShortcut::Activated, this, function,
Qt::QueuedConnection);
}; };
connect_shortcut(QStringLiteral("Exit Fullscreen"), [&] { connect_shortcut(QStringLiteral("Exit Fullscreen"), [&] {