diff options
Diffstat (limited to 'opentrack')
| -rw-r--r-- | opentrack/shortcuts.cpp | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/opentrack/shortcuts.cpp b/opentrack/shortcuts.cpp index 91d449f1..a33cf088 100644 --- a/opentrack/shortcuts.cpp +++ b/opentrack/shortcuts.cpp @@ -115,15 +115,17 @@ void KeybindingWorker::run() {  void Shortcuts::bind_keyboard_shortcut(K &key, key_opts& k)  {  #if !defined(_WIN32) -    if (!key) -        key = std::make_shared<QxtGlobalShortcut>(); -    else { -        key->setShortcut(QKeySequence::UnknownKey); +    using sh = QxtGlobalShortcut; +    if (key) +    {          key->setEnabled(false); -        std::shared_ptr<QxtGlobalShortcut> ptr = K(); -        key.swap(ptr); +        key->setShortcut(QKeySequence::UnknownKey); +        std::shared_ptr<sh> tmp(nullptr); +        key.swap(tmp);      } +    key = std::make_shared<sh>(); +      if (k.keycode != "")      {          key->setShortcut(QKeySequence::fromString(k.keycode, QKeySequence::PortableText)); | 
