From 451f3b27846de37125912afc384695a8c7fe047c Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Sun, 21 Jul 2024 10:18:58 +0200 Subject: [PATCH] Consider masked modifiers (~S etc.) when writing to bind file Fixes #12973 (cherry picked from commit eb1ac06a9ad9bafd50c26fb951dd38a8d970c199) --- src/KeyMap.cpp | 4 ++-- src/KeySequence.cpp | 11 +++++++++++ status.24x | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/KeyMap.cpp b/src/KeyMap.cpp index c34fe7eefb..d841c08ca1 100644 --- a/src/KeyMap.cpp +++ b/src/KeyMap.cpp @@ -568,11 +568,11 @@ void KeyMap::listBindings(BindingList & list, // a LFUN_COMMAND_PREFIX if (it->prefixes) { KeySequence seq = prefix; - seq.addkey(it->code, it->mod.first); + seq.addkey(it->code, it->mod.first, it->mod.second); it->prefixes->listBindings(list, seq, tag); } else { KeySequence seq = prefix; - seq.addkey(it->code, it->mod.first); + seq.addkey(it->code, it->mod.first, it->mod.second); list.push_back(Binding(it->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; diff --git a/status.24x b/status.24x index cf29d67ff8..d3b70a0f5c 100644 --- a/status.24x +++ b/status.24x @@ -74,6 +74,9 @@ What's new - Fix performance problems with references with (very) many authors. +- Fix problem that key bindings that include optional modifier keys could not + be un- or re-bound (bug 12973) + - Enable OK/Apply button in tabular dialog when "Additional Space" combo has been set to different value. -- 2.39.5