commit eb1ac06a9ad9bafd50c26fb951dd38a8d970c199 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Sun Jul 21 10:18:58 2024 +0200
Consider masked modifiers (~S etc.) when writing to bind file Fixes #12973 --- src/KeyMap.cpp | 4 ++-- src/KeySequence.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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; -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs