From 0437f4c4867cc73fdaf99c14925295c5de4b13ea Mon Sep 17 00:00:00 2001 From: Michael M Date: Mon, 26 Jun 2017 23:23:22 -0700 Subject: [PATCH] IOWindow: use BlockUserInputFilter --- .../DolphinQt2/Config/Mapping/IOWindow.cpp | 20 ++++++++----------- .../Core/DolphinQt2/Config/Mapping/IOWindow.h | 1 - 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Source/Core/DolphinQt2/Config/Mapping/IOWindow.cpp b/Source/Core/DolphinQt2/Config/Mapping/IOWindow.cpp index 16f0186cb2..216da815fa 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/IOWindow.cpp +++ b/Source/Core/DolphinQt2/Config/Mapping/IOWindow.cpp @@ -22,6 +22,7 @@ #include "DolphinQt2/Config/Mapping/MappingCommon.h" #include "DolphinQt2/Config/Mapping/MappingWidget.h" #include "DolphinQt2/Config/Mapping/MappingWindow.h" +#include "DolphinQt2/QtUtils/BlockUserInputFilter.h" #include "InputCommon/ControlReference/ControlReference.h" #include "InputCommon/ControllerEmu/ControllerEmu.h" #include "InputCommon/ControllerInterface/ControllerInterface.h" @@ -172,11 +173,10 @@ void IOWindow::OnDialogButtonPressed(QAbstractButton* button) void IOWindow::OnDetectButtonPressed() { - if (m_block.IsSet()) - return; + installEventFilter(BlockUserInputFilter::Instance()); + grabKeyboard(); + grabMouse(); - m_block.Set(true); - m_expression_text->setEnabled(false); std::thread([this] { auto* btn = m_type == IOWindow::Type::Input ? m_detect_button : m_test_button; const auto old_label = btn->text(); @@ -195,8 +195,10 @@ void IOWindow::OnDetectButtonPressed() if (list.size() > 0) m_option_list->setCurrentItem(list[0]); } - m_expression_text->setEnabled(true); - m_block.Set(false); + + releaseMouse(); + releaseKeyboard(); + removeEventFilter(BlockUserInputFilter::Instance()); }).detach(); } @@ -209,9 +211,6 @@ void IOWindow::OnRangeChanged(int value) void IOWindow::UpdateOptionList() { - if (m_block.IsSet()) - return; - m_option_list->clear(); const auto device = g_controller_interface.FindDevice(m_devq); @@ -234,7 +233,6 @@ void IOWindow::UpdateOptionList() void IOWindow::UpdateDeviceList() { - m_block.Set(true); m_devices_combo->clear(); Core::RunAsCPUThread([&] { @@ -255,6 +253,4 @@ void IOWindow::UpdateDeviceList() m_devices_combo->setCurrentIndex(0); }); - - m_block.Set(false); } diff --git a/Source/Core/DolphinQt2/Config/Mapping/IOWindow.h b/Source/Core/DolphinQt2/Config/Mapping/IOWindow.h index b59d84db65..d12766a6c7 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/IOWindow.h +++ b/Source/Core/DolphinQt2/Config/Mapping/IOWindow.h @@ -94,6 +94,5 @@ private: ControllerEmu::EmulatedController* m_controller; ciface::Core::DeviceQualifier m_devq; - Common::Flag m_block; Type m_type; };