aboutsummaryrefslogtreecommitdiff
path: root/src/input_common/keyboard.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2017-03-20 11:13:52 -0400
committerGitHub <noreply@github.com>2017-03-20 11:13:52 -0400
commit76cce58970b1997b594372a382ca0072e2fdfa61 (patch)
treeb23a5f598b6a0a4b7346e2be7839f2cd4b5de2a5 /src/input_common/keyboard.cpp
parent5fcfc9cc963192af8cffdaefcbd81aecfa7bb620 (diff)
parent5899b6b04d1c3a3602f5d73a2c74112f9a9a059d (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.cpp11
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