diff options
author | bunnei <bunneidev@gmail.com> | 2017-03-20 11:13:52 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-20 11:13:52 -0400 |
commit | a48e5c64b65c99aea859f5941028f42b117fb8e4 (patch) | |
tree | b23a5f598b6a0a4b7346e2be7839f2cd4b5de2a5 /src/input_common/keyboard.cpp | |
parent | 2f625f2c6f2e50cad67fd6644d3fd11d0458920b (diff) | |
parent | 560884336f706846545cd4c3243002ccb03cfe6d (diff) |
Merge pull request #2630 from wwylele/qt-focus-loss-2
Qt: Release all pressed buttons when window focus is lost [rebased]
Diffstat (limited to 'src/input_common/keyboard.cpp')
-rw-r--r-- | src/input_common/keyboard.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/input_common/keyboard.cpp b/src/input_common/keyboard.cpp index a8fc01f2e9..0f0d10f237 100644 --- a/src/input_common/keyboard.cpp +++ b/src/input_common/keyboard.cpp @@ -53,6 +53,13 @@ public: } } + void ChangeAllKeyStatus(bool pressed) { + std::lock_guard<std::mutex> guard(mutex); + for (const KeyButtonPair& pair : list) { + pair.key_button->status.store(pressed); + } + } + private: std::mutex mutex; std::list<KeyButtonPair> list; @@ -79,4 +86,8 @@ void Keyboard::ReleaseKey(int key_code) { key_button_list->ChangeKeyStatus(key_code, false); } +void Keyboard::ReleaseAllKeys() { + key_button_list->ChangeAllKeyStatus(false); +} + } // namespace InputCommon |