From 41e94b7b99f83a45633d555160b31b50f021c350 Mon Sep 17 00:00:00 2001 From: german77 Date: Sat, 6 Mar 2021 13:27:02 -0600 Subject: Enable mouse toggle buttons --- src/input_common/keyboard.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/input_common/keyboard.cpp') diff --git a/src/input_common/keyboard.cpp b/src/input_common/keyboard.cpp index fa0e60ac1..c467ff4c5 100644 --- a/src/input_common/keyboard.cpp +++ b/src/input_common/keyboard.cpp @@ -19,16 +19,18 @@ public: bool GetStatus() const override { if (toggle) { - return toggled_status.load(); + return toggled_status.load(std::memory_order_relaxed); } return status.load(); } void ToggleButton() { - if (!lock) { - lock = true; - toggled_status.store(!toggled_status.load()); + if (lock) { + return; } + lock = true; + const bool old_toggle_status = toggled_status.load(); + toggled_status.store(!old_toggle_status); } void UnlockButton() { @@ -41,7 +43,7 @@ private: std::shared_ptr key_button_list; std::atomic status{false}; std::atomic toggled_status{false}; - bool lock = {}; + bool lock{false}; const bool toggle; }; -- cgit v1.2.3