X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FKeySequence.cpp;h=3bee9caadbd47ffb28c701b43b4adbff0a3b069b;hb=68ee68103a77300c3aa01db9e63bd01b8243a0eb;hp=3bb207c5decb56ed11eb0cbb4153929f936f6428;hpb=9383f4c3c6f9cfab2d658701ba66e2b54cd68bea;p=lyx.git diff --git a/src/KeySequence.cpp b/src/KeySequence.cpp index 3bb207c5de..3bee9caadb 100644 --- a/src/KeySequence.cpp +++ b/src/KeySequence.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * \author John Levon * @@ -13,10 +13,9 @@ #include #include "KeySequence.h" +#include "KeyMap.h" #include "support/gettext.h" -#include "KeyMap.h" -#include "lfuns.h" #include "frontends/KeySymbol.h" @@ -38,12 +37,10 @@ FuncRequest const & KeySequence::addkey(KeySymbol const & key, modifiers.push_back(make_pair(mod, nmod)); sequence.push_back(key); - if (curmap) { + if (curmap) return curmap->lookup(key, mod, this); - } - static FuncRequest unknown(LFUN_UNKNOWN_ACTION); - return unknown; + return FuncRequest::unknown; } @@ -73,6 +70,12 @@ size_t KeySequence::parse(string const & s) i += 2; continue; case 'm': case 'M': +#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING) + mod |= MetaModifier; + i += 2; + continue; +#endif + case 'a': case 'A': mod |= AltModifier; i += 2; continue; @@ -91,6 +94,12 @@ size_t KeySequence::parse(string const & s) i += 3; continue; case 'm': case 'M': +#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING) + nmod |= MetaModifier; + i += 3; + continue; +#endif + case 'a': case 'A': nmod |= AltModifier; i += 3; continue; @@ -116,8 +125,7 @@ size_t KeySequence::parse(string const & s) } } - // empty sequence? - if (sequence.size() == 0) + if (sequence.empty()) return 0; // everything is fine @@ -144,6 +152,10 @@ docstring const KeySequence::print(outputFormat format) const if (mod & ControlModifier) buf += "C-"; if (mod & AltModifier) +#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING) + buf += "A-"; + if (mod & MetaModifier) +#endif buf += "M-"; if (mod & ShiftModifier) buf += "S-"; @@ -172,15 +184,9 @@ docstring const KeySequence::printOptions(bool forgui) const } -void KeySequence::mark_deleted() -{ - deleted_ = true; -} - - void KeySequence::reset() { - mark_deleted(); + deleted_ = true; curmap = stdmap; } @@ -192,4 +198,15 @@ void KeySequence::clear() } +void KeySequence::removeKey() +{ + if (deleted_) + return; + sequence.pop_back(); + modifiers.pop_back(); + if (sequence.empty()) + deleted_ = true; +} + + } // namespace lyx