]> git.lyx.org Git - lyx.git/commitdiff
Consider masked modifiers (~S etc.) when writing to bind file
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 21 Jul 2024 08:18:58 +0000 (10:18 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 21 Jul 2024 08:18:58 +0000 (10:18 +0200)
Fixes #12973

src/KeyMap.cpp
src/KeySequence.cpp

index 5bafed5a9b795d61c825c5b0104f9d6f24f2b266..f779cbbf4c6520f9b41d3c9ca22625697e463fa7 100644 (file)
@@ -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));
                }
        }
index c0985b78b9b75d8f252437812a307798ad89cbc9..80cd6dae0e59875f69c9f562da6426532ff8da82 100644 (file)
@@ -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;