X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fkbmap.C;h=32fbdfd1c457bffae6aa06317deeb459b98f8f69;hb=530749439472bddf13d9f4ee74ee6184ef76e3f9;hp=55f7b025238b0d530957525ccaf6bb48e754d660;hpb=025f30b36150bdbe404687a5d9656d3b7fab8445;p=lyx.git diff --git a/src/kbmap.C b/src/kbmap.C index 55f7b02523..32fbdfd1c4 100644 --- a/src/kbmap.C +++ b/src/kbmap.C @@ -23,7 +23,8 @@ #include "frontends/LyXKeySym.h" #include "support/filetools.h" -#include "support/std_sstream.h" + +#include using lyx::support::i18nLibFileSearch; @@ -254,6 +255,7 @@ void kb_keymap::defkey(kb_sequence * seq, it->table.reset(); } it->func = func; + it->func.origin = FuncRequest::KEYBOARD; return; } else if (!it->table.get()) { lyxerr << "Error: New binding for '" << seq->print() @@ -293,14 +295,14 @@ string const kb_keymap::printbindings(FuncRequest const & func) const } -kb_keymap::Bindings +kb_keymap::Bindings kb_keymap::findbindings(FuncRequest const & func) const { return findbindings(func, kb_sequence(0, 0)); } -kb_keymap::Bindings +kb_keymap::Bindings kb_keymap::findbindings(FuncRequest const & func, kb_sequence const & prefix) const { @@ -313,7 +315,7 @@ kb_keymap::findbindings(FuncRequest const & func, if (cit->table.get()) { kb_sequence seq = prefix; seq.addkey(cit->code, cit->mod.first); - Bindings res2 = + Bindings res2 = cit->table->findbindings(func, seq); res.insert(res.end(), res2.begin(), res2.end()); } else if (cit->func == func) { @@ -325,3 +327,17 @@ kb_keymap::findbindings(FuncRequest const & func, return res; } + + +std::pair +kb_keymap::find1keybinding(FuncRequest const & func) const +{ + Table::const_iterator end = table.end(); + for (Table::const_iterator cit = table.begin(); + cit != end; ++cit) { + if (!cit->table.get() && cit->func == func) + return std::make_pair(cit->code.get(), cit->mod.first); + } + + return std::make_pair(0, key_modifier::none); +}