diff options
Diffstat (limited to 'dinput')
-rw-r--r-- | dinput/keybinding-worker.cpp | 11 | ||||
-rw-r--r-- | dinput/keybinding-worker.hpp | 1 |
2 files changed, 5 insertions, 7 deletions
diff --git a/dinput/keybinding-worker.cpp b/dinput/keybinding-worker.cpp index 0357752c..41fa3486 100644 --- a/dinput/keybinding-worker.cpp +++ b/dinput/keybinding-worker.cpp @@ -28,7 +28,7 @@ KeybindingWorker::~KeybindingWorker() { qDebug() << "exit: keybinding worker"; - should_quit = true; + requestInterruption(); wait(); if (dinkeyboard) { dinkeyboard->Unacquire(); @@ -74,11 +74,10 @@ bool KeybindingWorker::init() return true; } -KeybindingWorker::KeybindingWorker() : dinkeyboard(nullptr), din(dinput_handle::make_di()), should_quit(false) +KeybindingWorker::KeybindingWorker() : dinkeyboard(nullptr), din(dinput_handle::make_di()) { - should_quit = !init(); - - start(); + if (init()) + start(); } KeybindingWorker& KeybindingWorker::make() @@ -92,7 +91,7 @@ void KeybindingWorker::run() unsigned char keystate[256] = {0}; unsigned char old_keystate[256] = {0}; - while (!should_quit) + while (!isInterruptionRequested()) { { QMutexLocker l(&mtx); diff --git a/dinput/keybinding-worker.hpp b/dinput/keybinding-worker.hpp index 553a314c..6ed277cd 100644 --- a/dinput/keybinding-worker.hpp +++ b/dinput/keybinding-worker.hpp @@ -48,7 +48,6 @@ private: QMutex mtx; QMainWindow fake_main_window; dinput_handle::di_t din; - volatile bool should_quit; void run() override; bool init(); |