[LyX/master] Consider masked modifiers (~S etc.) when writing to bind file
Juergen Spitzmueller
spitz at lyx.org
Sun Jul 21 08:19:53 UTC 2024
commit eb1ac06a9ad9bafd50c26fb951dd38a8d970c199
Author: Juergen Spitzmueller <spitz at 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;
More information about the lyx-cvs
mailing list