From: Juergen Spitzmueller Date: Sun, 21 Jul 2024 08:18:58 +0000 (+0200) Subject: Consider masked modifiers (~S etc.) when writing to bind file X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=eb1ac06a9ad9bafd50c26fb951dd38a8d970c199;p=lyx.git Consider masked modifiers (~S etc.) when writing to bind file Fixes #12973 --- diff --git a/src/KeyMap.cpp b/src/KeyMap.cpp index 5bafed5a9b..f779cbbf4c 100644 --- a/src/KeyMap.cpp +++ b/src/KeyMap.cpp @@ -559,11 +559,11 @@ void KeyMap::listBindings(BindingList & list, // a LFUN_COMMAND_PREFIX if (key.prefixes) { KeySequence seq = prefix; - seq.addkey(key.code, key.mod.first); + seq.addkey(key.code, key.mod.first, key.mod.second); key.prefixes->listBindings(list, seq, tag); } else { KeySequence seq = prefix; - seq.addkey(key.code, key.mod.first); + seq.addkey(key.code, key.mod.first, key.mod.second); list.push_back(Binding(key.func, seq, tag)); } } diff --git a/src/KeySequence.cpp b/src/KeySequence.cpp index c0985b78b9..80cd6dae0e 100644 --- a/src/KeySequence.cpp +++ b/src/KeySequence.cpp @@ -147,16 +147,27 @@ docstring const KeySequence::print(outputFormat format, bool const untranslated) break; case BindFile: KeyModifier mod = modifiers[i].first; + KeyModifier nmod = modifiers[i].second; if (mod & ControlModifier) buf += "C-"; + else if (nmod & ControlModifier) + buf += "~C-"; if (mod & AltModifier) #if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING) buf += "A-"; + else if (nmod & AltModifier) + buf += "~A-"; if (mod & MetaModifier) #endif buf += "M-"; +#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING) + else if (nmod & MetaModifier) + buf += "~M-"; +#endif if (mod & ShiftModifier) buf += "S-"; + else if (nmod & ShiftModifier) + buf += "~S-"; buf += from_utf8(sequence[i].getSymbolName()); break;