Merge pull request #7317 from spycrab/qt_fix_mpbtn_crash

Qt/MappingButton: Fix crash when exiting during input detection
This commit is contained in:
spycrab 2018-08-13 00:14:25 +02:00 committed by GitHub
commit 1c324c8927
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 4 deletions

View File

@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <future>
#include <thread>
#include <utility>
#include <QApplication>
@ -23,6 +22,7 @@
#include "DolphinQt/Config/Mapping/MappingWidget.h"
#include "DolphinQt/Config/Mapping/MappingWindow.h"
#include "DolphinQt/QtUtils/BlockUserInputFilter.h"
#include "DolphinQt/QtUtils/QueueOnObject.h"
#include "DolphinQt/Settings.h"
#include "InputCommon/ControlReference/ControlReference.h"
@ -110,9 +110,12 @@ void MappingButton::Detect()
grabKeyboard();
// Make sure that we don't block event handling
std::thread thread([this] {
QueueOnObject(this, [this] {
setText(QStringLiteral("..."));
// The button text won't be updated if we don't process events here
QApplication::processEvents();
// Avoid that the button press itself is registered as an event
Common::SleepCurrentThread(100);
@ -188,8 +191,6 @@ void MappingButton::Detect()
OnButtonTimeout();
}
});
thread.detach();
}
void MappingButton::OnButtonTimeout()