summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-05-26 17:39:50 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-05-26 17:39:50 +0200
commitf906076ef1205387f52c03e8eed4ac2419c6d9a6 (patch)
tree83dd76ba7e23347fc1bebf15cd9b494362fbe84a
parent70c9aaa9c297d2b20b7d3b466ceaf5f1def36752 (diff)
api/shortcuts: only allow the exact modifier keys
Requested-by: white_fang on BMS forum Original message: I've setup shift+f11/f12 to incerease/decrease f18's flaps , ... F11 and F12 are free in BMS , 'donothing' action. so I want ONLY F11 to toggle opentracks enable/disable (and only F12 to re-center) , but it also reacts when in BMS and press SHIFT+F11 to toggle flaps on f18
-rw-r--r--opentrack/shortcuts.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/opentrack/shortcuts.cpp b/opentrack/shortcuts.cpp
index 62a6ffd9..3fd35b19 100644
--- a/opentrack/shortcuts.cpp
+++ b/opentrack/shortcuts.cpp
@@ -46,7 +46,7 @@ void Shortcuts::bind_keyboard_shortcut(K &key, const key_opts& k, unused_on_unix
key = K();
int idx = 0;
QKeySequence code;
-
+
if (k.guid != "")
{
key.guid = k.guid;
@@ -61,7 +61,7 @@ void Shortcuts::bind_keyboard_shortcut(K &key, const key_opts& k, unused_on_unix
code = QKeySequence(Qt::Key_unknown);
else
code = QKeySequence::fromString(k.keycode, QKeySequence::PortableText);
-
+
Qt::KeyboardModifiers mods = Qt::NoModifier;
if (code != Qt::Key_unknown)
win_key::from_qt(code, idx, mods);
@@ -87,12 +87,12 @@ void Shortcuts::receiver(const Key& k)
if (k.keycode != k_.keycode)
continue;
if (k_.held && !k.held) continue;
- if (k_.alt && !k.alt) continue;
- if (k_.ctrl && !k.ctrl) continue;
- if (k_.shift && !k.shift) continue;
+ if (k_.alt != k.alt) continue;
+ if (k_.ctrl != k.ctrl) continue;
+ if (k_.shift != k.shift) continue;
if (!k_.should_process())
continue;
-
+
fun(k.held);
}
}
@@ -102,7 +102,7 @@ void Shortcuts::reload(const std::vector<std::tuple<key_opts&, fun, bool>> &keys
{
const int sz = keys_.size();
keys = std::vector<tt>();
-
+
for (int i = 0; i < sz; i++)
{
const auto& kk = keys_[i];