Qt: Fix ClearBindStateFromSource() executing on wrong thread
This commit is contained in:
parent
af5f1c711c
commit
72f7225ec2
|
@ -690,7 +690,7 @@ void MainWindow::onApplicationStateChanged(Qt::ApplicationState state)
|
|||
// Clear the state of all keyboard binds.
|
||||
// That way, if we had a key held down, and lost focus, the bind won't be stuck enabled because we never
|
||||
// got the key release message, because it happened in another window which "stole" the event.
|
||||
InputManager::ClearBindStateFromSource(InputManager::MakeHostKeyboardKey(0));
|
||||
g_emu_thread->clearInputBindStateFromSource(InputManager::MakeHostKeyboardKey(0));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1065,6 +1065,17 @@ void EmuThread::reloadPostProcessingShaders()
|
|||
System::ReloadPostProcessingShaders();
|
||||
}
|
||||
|
||||
void EmuThread::clearInputBindStateFromSource(InputBindingKey key)
|
||||
{
|
||||
if (!isOnThread())
|
||||
{
|
||||
QMetaObject::invokeMethod(this, "clearInputBindStateFromSource", Qt::QueuedConnection, Q_ARG(InputBindingKey, key));
|
||||
return;
|
||||
}
|
||||
|
||||
InputManager::ClearBindStateFromSource(key);
|
||||
}
|
||||
|
||||
void EmuThread::runOnEmuThread(std::function<void()> callback)
|
||||
{
|
||||
callback();
|
||||
|
|
|
@ -187,6 +187,7 @@ public Q_SLOTS:
|
|||
void setCheatEnabled(quint32 index, bool enabled);
|
||||
void applyCheat(quint32 index);
|
||||
void reloadPostProcessingShaders();
|
||||
void clearInputBindStateFromSource(InputBindingKey key);
|
||||
|
||||
private Q_SLOTS:
|
||||
void stopInThread();
|
||||
|
|
Loading…
Reference in New Issue