Merge pull request #7317 from spycrab/qt_fix_mpbtn_crash
Qt/MappingButton: Fix crash when exiting during input detection
This commit is contained in:
commit
1c324c8927
|
@ -3,7 +3,6 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <future>
|
#include <future>
|
||||||
#include <thread>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
@ -23,6 +22,7 @@
|
||||||
#include "DolphinQt/Config/Mapping/MappingWidget.h"
|
#include "DolphinQt/Config/Mapping/MappingWidget.h"
|
||||||
#include "DolphinQt/Config/Mapping/MappingWindow.h"
|
#include "DolphinQt/Config/Mapping/MappingWindow.h"
|
||||||
#include "DolphinQt/QtUtils/BlockUserInputFilter.h"
|
#include "DolphinQt/QtUtils/BlockUserInputFilter.h"
|
||||||
|
#include "DolphinQt/QtUtils/QueueOnObject.h"
|
||||||
#include "DolphinQt/Settings.h"
|
#include "DolphinQt/Settings.h"
|
||||||
|
|
||||||
#include "InputCommon/ControlReference/ControlReference.h"
|
#include "InputCommon/ControlReference/ControlReference.h"
|
||||||
|
@ -110,9 +110,12 @@ void MappingButton::Detect()
|
||||||
grabKeyboard();
|
grabKeyboard();
|
||||||
|
|
||||||
// Make sure that we don't block event handling
|
// Make sure that we don't block event handling
|
||||||
std::thread thread([this] {
|
QueueOnObject(this, [this] {
|
||||||
setText(QStringLiteral("..."));
|
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
|
// Avoid that the button press itself is registered as an event
|
||||||
Common::SleepCurrentThread(100);
|
Common::SleepCurrentThread(100);
|
||||||
|
|
||||||
|
@ -188,8 +191,6 @@ void MappingButton::Detect()
|
||||||
OnButtonTimeout();
|
OnButtonTimeout();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
thread.detach();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MappingButton::OnButtonTimeout()
|
void MappingButton::OnButtonTimeout()
|
||||||
|
|
Loading…
Reference in New Issue