X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.C;h=750d2c210026a8141f171e64645863c7ff3902b0;hb=c544107e324090c6eafb4c56749da2624b9b1122;hp=1c98cbdc93a912e2205e06ad30b9478decbfde82;hpb=f64d7de0bf4b04a9d869b529992d0f39fc7bc8a3;p=lyx.git diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 1c98cbdc93..750d2c2100 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -68,6 +68,7 @@ #include "support/lstrings.h" #include "support/tostr.h" #include "support/path.h" +#include "support/path_defines.h" #include "support/lyxfunctional.h" #include @@ -111,25 +112,12 @@ LyXFunc::LyXFunc(LyXView * o) } -inline -LyXText * LyXFunc::TEXT(bool flag = true) const +void LyXFunc::moveCursorUpdate() { - if (flag) - return view()->text; - return view()->getLyXText(); -} - - -inline -void LyXFunc::moveCursorUpdate(bool flag, bool selecting) -{ - if (selecting || TEXT(flag)->selection.mark()) { - TEXT(flag)->setSelection(); - if (!TEXT(flag)->isInInset()) - view()->toggleToggle(); - } - view()->update(TEXT(flag), BufferView::SELECT); - + LyXText * lt = view()->text; + if (lt->selection.mark()) + lt->setSelection(); + view()->update(); view()->switchKeyMap(); } @@ -143,13 +131,13 @@ void LyXFunc::handleKeyFunc(kb_action action) } owner->getIntl().getTransManager() - .deadkey(c, get_accent(action).accent, TEXT(false)); + .deadkey(c, get_accent(action).accent, view()->getLyXText()); // Need to clear, in case the minibuffer calls these // actions keyseq.clear(); // copied verbatim from do_accent_char - view()->update(TEXT(false), BufferView::SELECT); - TEXT(false)->selection.cursor = TEXT(false)->cursor; + view()->update(); + view()->getLyXText()->selection.cursor = view()->getLyXText()->cursor; } @@ -335,8 +323,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const case LFUN_COPY: if (tli) { UpdatableInset * in = tli; - if (in->lyxCode() != Inset::TABULAR_CODE) { - in = tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE); + if (in->lyxCode() != InsetOld::TABULAR_CODE) { + in = tli->getFirstLockingInsetOfType(InsetOld::TABULAR_CODE); } if (in && static_cast(in)->hasSelection()) { disable = false; @@ -354,27 +342,27 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const case LFUN_LAYOUT_TABULAR: disable = !tli - || (tli->lyxCode() != Inset::TABULAR_CODE - && !tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE)); + || (tli->lyxCode() != InsetOld::TABULAR_CODE + && !tli->getFirstLockingInsetOfType(InsetOld::TABULAR_CODE)); break; case LFUN_DEPTH_MIN: - disable = !changeDepth(view(), TEXT(false), DEC_DEPTH, true); + disable = !changeDepth(view(), view()->getLyXText(), DEC_DEPTH, true); break; case LFUN_DEPTH_PLUS: - disable = !changeDepth(view(), TEXT(false), INC_DEPTH, true); + disable = !changeDepth(view(), view()->getLyXText(), INC_DEPTH, true); break; case LFUN_LAYOUT: case LFUN_LAYOUT_PARAGRAPH: { - Inset * inset = TEXT(false)->cursor.par()->inInset(); + InsetOld * inset = view()->getLyXText()->cursor.par()->inInset(); disable = inset && inset->forceDefaultParagraphs(inset); break; } case LFUN_INSET_OPTARG: - disable = (TEXT(false)->cursor.par()->layout()->optionalargs == 0); + disable = (view()->getLyXText()->cursor.par()->layout()->optionalargs == 0); break; case LFUN_TABULAR_FEATURE: @@ -422,14 +410,14 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const if (tli) { FuncStatus ret; //ret.disabled(true); - if (tli->lyxCode() == Inset::TABULAR_CODE) { + if (tli->lyxCode() == InsetOld::TABULAR_CODE) { ret = static_cast(tli) ->getStatus(ev.argument); flag |= ret; disable = false; - } else if (tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE)) { + } else if (tli->getFirstLockingInsetOfType(InsetOld::TABULAR_CODE)) { ret = static_cast - (tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE)) + (tli->getFirstLockingInsetOfType(InsetOld::TABULAR_CODE)) ->getStatus(ev.argument); flag |= ret; disable = false; @@ -495,27 +483,27 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const // jump back to owner if an InsetText, so // we get back to the InsetTabular or whatever - if (inset->lyxCode() == Inset::TEXT_CODE) + if (inset->lyxCode() == InsetOld::TEXT_CODE) inset = inset->owner(); - Inset::Code code = inset->lyxCode(); + InsetOld::Code code = inset->lyxCode(); switch (code) { - case Inset::TABULAR_CODE: + case InsetOld::TABULAR_CODE: disable = ev.argument != "tabular"; break; - case Inset::ERT_CODE: + case InsetOld::ERT_CODE: disable = ev.argument != "ert"; break; - case Inset::FLOAT_CODE: + case InsetOld::FLOAT_CODE: disable = ev.argument != "float"; break; - case Inset::MINIPAGE_CODE: + case InsetOld::MINIPAGE_CODE: disable = ev.argument != "minipage"; break; - case Inset::WRAP_CODE: + case InsetOld::WRAP_CODE: disable = ev.argument != "wrap"; break; - case Inset::NOTE_CODE: + case InsetOld::NOTE_CODE: disable = ev.argument != "note"; break; default: @@ -558,7 +546,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const lyxrc.print_command == "none"; } else if (name == "character") { UpdatableInset * tli = view()->theLockingInset(); - disable = tli && tli->lyxCode() == Inset::ERT_CODE; + disable = tli && tli->lyxCode() == InsetOld::ERT_CODE; } else if (name == "vclog") { disable = !buf->lyxvc.inUse(); } else if (name == "latexlog") { @@ -572,101 +560,101 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const } // the functions which insert insets - Inset::Code code = Inset::NO_CODE; + InsetOld::Code code = InsetOld::NO_CODE; switch (ev.action) { case LFUN_DIALOG_SHOW_NEW_INSET: if (ev.argument == "bibitem") - code = Inset::BIBITEM_CODE; + code = InsetOld::BIBITEM_CODE; else if (ev.argument == "bibtex") - code = Inset::BIBTEX_CODE; + code = InsetOld::BIBTEX_CODE; else if (ev.argument == "citation") - code = Inset::CITE_CODE; + code = InsetOld::CITE_CODE; else if (ev.argument == "ert") - code = Inset::ERT_CODE; + code = InsetOld::ERT_CODE; else if (ev.argument == "external") - code = Inset::EXTERNAL_CODE; + code = InsetOld::EXTERNAL_CODE; else if (ev.argument == "float") - code = Inset::FLOAT_CODE; + code = InsetOld::FLOAT_CODE; else if (ev.argument == "graphics") - code = Inset::GRAPHICS_CODE; + code = InsetOld::GRAPHICS_CODE; else if (ev.argument == "include") - code = Inset::INCLUDE_CODE; + code = InsetOld::INCLUDE_CODE; else if (ev.argument == "index") - code = Inset::INDEX_CODE; + code = InsetOld::INDEX_CODE; else if (ev.argument == "label") - code = Inset::LABEL_CODE; + code = InsetOld::LABEL_CODE; else if (ev.argument == "minipage") - code = Inset::MINIPAGE_CODE; + code = InsetOld::MINIPAGE_CODE; else if (ev.argument == "ref") - code = Inset::REF_CODE; + code = InsetOld::REF_CODE; else if (ev.argument == "toc") - code = Inset::TOC_CODE; + code = InsetOld::TOC_CODE; else if (ev.argument == "url") - code = Inset::URL_CODE; + code = InsetOld::URL_CODE; else if (ev.argument == "wrap") - code = Inset::WRAP_CODE; + code = InsetOld::WRAP_CODE; break; case LFUN_INSET_ERT: - code = Inset::ERT_CODE; + code = InsetOld::ERT_CODE; break; case LFUN_INSET_FOOTNOTE: - code = Inset::FOOT_CODE; + code = InsetOld::FOOT_CODE; break; case LFUN_TABULAR_INSERT: - code = Inset::TABULAR_CODE; + code = InsetOld::TABULAR_CODE; break; case LFUN_INSET_MARGINAL: - code = Inset::MARGIN_CODE; + code = InsetOld::MARGIN_CODE; break; case LFUN_INSET_MINIPAGE: - code = Inset::MINIPAGE_CODE; + code = InsetOld::MINIPAGE_CODE; break; case LFUN_INSET_FLOAT: case LFUN_INSET_WIDE_FLOAT: - code = Inset::FLOAT_CODE; + code = InsetOld::FLOAT_CODE; break; case LFUN_INSET_WRAP: - code = Inset::WRAP_CODE; + code = InsetOld::WRAP_CODE; break; case LFUN_FLOAT_LIST: - code = Inset::FLOAT_LIST_CODE; + code = InsetOld::FLOAT_LIST_CODE; break; #if 0 case LFUN_INSET_LIST: - code = Inset::LIST_CODE; + code = InsetOld::LIST_CODE; break; case LFUN_INSET_THEOREM: - code = Inset::THEOREM_CODE; + code = InsetOld::THEOREM_CODE; break; #endif case LFUN_INSET_CAPTION: - code = Inset::CAPTION_CODE; + code = InsetOld::CAPTION_CODE; break; case LFUN_INSERT_NOTE: - code = Inset::NOTE_CODE; + code = InsetOld::NOTE_CODE; break; case LFUN_INSERT_LABEL: - code = Inset::LABEL_CODE; + code = InsetOld::LABEL_CODE; break; case LFUN_INSET_OPTARG: - code = Inset::OPTARG_CODE; + code = InsetOld::OPTARG_CODE; break; case LFUN_ENVIRONMENT_INSERT: - code = Inset::MINIPAGE_CODE; + code = InsetOld::MINIPAGE_CODE; break; case LFUN_INDEX_INSERT: - code = Inset::INDEX_CODE; + code = InsetOld::INDEX_CODE; break; case LFUN_INDEX_PRINT: - code = Inset::INDEX_PRINT_CODE; + code = InsetOld::INDEX_PRINT_CODE; break; case LFUN_TOC_INSERT: - code = Inset::TOC_CODE; + code = InsetOld::TOC_CODE; break; case LFUN_HTMLURL: case LFUN_URL: - code = Inset::URL_CODE; + code = InsetOld::URL_CODE; break; case LFUN_QUOTE: // always allow this, since we will inset a raw quote @@ -678,17 +666,17 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const case LFUN_MENU_SEPARATOR: case LFUN_LDOTS: case LFUN_END_OF_SENTENCE: - code = Inset::SPECIALCHAR_CODE; + code = InsetOld::SPECIALCHAR_CODE; break; case LFUN_SPACE_INSERT: // slight hack: we know this is allowed in math mode if (!mathcursor) - code = Inset::SPACE_CODE; + code = InsetOld::SPACE_CODE; break; default: break; } - if (code != Inset::NO_CODE && tli && !tli->insetAllowed(code)) + if (code != InsetOld::NO_CODE && tli && !tli->insetAllowed(code)) disable = true; if (disable) @@ -704,7 +692,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const flag.setOnOff(buf->isReadonly()); break; case LFUN_APPENDIX: - flag.setOnOff(TEXT(false)->cursor.par()->params().startOfAppendix()); + flag.setOnOff(view()->getLyXText()->cursor.par()->params().startOfAppendix()); break; case LFUN_SWITCHBUFFER: // toggle on the current buffer, but do not toggle off @@ -721,7 +709,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const // the font related toggles if (!mathcursor) { - LyXFont const & font = TEXT(false)->real_current_font; + LyXFont const & font = view()->getLyXText()->real_current_font; switch (ev.action) { case LFUN_EMPH: flag.setOnOff(font.emph() == LyXFont::ON); @@ -808,22 +796,24 @@ namespace { Buffer & buf = *bv->buffer(); if (buf.isClean()) return true; - + string const file = MakeDisplayPath(buf.fileName(), 30); string text = bformat(_("The document %1$s has unsaved " "changes.\n\nDo you want to save " "the document?"), file); int const ret = Alert::prompt(_("Save changed document?"), - text, 0, 1, _("&Save"), + text, 0, 1, _("&Save"), _("&Cancel")); - if (ret == 0) + if (ret == 0) bv->owner()->dispatch(FuncRequest(LFUN_MENUWRITE)); return buf.isClean(); } + } //namespace anon + void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) { lyxerr[Debug::ACTION] << "LyXFunc::dispatch: action[" << ev.action @@ -859,9 +849,9 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) view()->hideCursor(); if (view()->available() && view()->theLockingInset()) { - Inset::RESULT result; - if ((action > 1) || ((action == LFUN_UNKNOWN_ACTION) && - (!keyseq.deleted()))) + InsetOld::RESULT result; + if (action > 1 || (action == LFUN_UNKNOWN_ACTION && + !keyseq.deleted())) { UpdatableInset * inset = view()->theLockingInset(); #if 1 @@ -907,43 +897,45 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) // FINISHED means that the cursor should be // one position after the inset. } else if (result == FINISHED_RIGHT) { - TEXT()->cursorRight(view()); - moveCursorUpdate(true, false); + view()->text->cursorRight(view()); + moveCursorUpdate(); owner->clearMessage(); goto exit_with_message; } else if (result == FINISHED_UP) { - if (TEXT()->cursor.irow() != TEXT()->rows().begin()) { + RowList::iterator const irow = view()->text->cursorIRow(); + if (irow != view()->text->rows().begin()) { #if 1 - TEXT()->setCursorFromCoordinates( - TEXT()->cursor.ix() + inset_x, - TEXT()->cursor.iy() - - TEXT()->cursor.irow()->baseline() - 1); - TEXT()->cursor.x_fix(TEXT()->cursor.x()); + view()->text->setCursorFromCoordinates( + view()->text->cursor.ix() + inset_x, + view()->text->cursor.iy() - + irow->baseline() - 1); + view()->text->cursor.x_fix(view()->text->cursor.x()); #else - TEXT()->cursorUp(view()); + view()->text->cursorUp(view()); #endif - moveCursorUpdate(true, false); + moveCursorUpdate(); } else { - view()->update(TEXT(), BufferView::SELECT); + view()->update(); } owner->clearMessage(); goto exit_with_message; } else if (result == FINISHED_DOWN) { - if (boost::next(TEXT()->cursor.irow()) != TEXT()->rows().end()) { + RowList::iterator const irow = view()->text->cursorIRow(); + if (boost::next(irow) != view()->text->rows().end()) { #if 1 - TEXT()->setCursorFromCoordinates( - TEXT()->cursor.ix() + inset_x, - TEXT()->cursor.iy() - - TEXT()->cursor.irow()->baseline() + - TEXT()->cursor.irow()->height() + 1); - TEXT()->cursor.x_fix(TEXT()->cursor.x()); + view()->text->setCursorFromCoordinates( + view()->text->cursor.ix() + inset_x, + view()->text->cursor.iy() - + irow->baseline() + + irow->height() + 1); + view()->text->cursor.x_fix(view()->text->cursor.x()); #else - TEXT()->cursorDown(view()); + view()->text->cursorDown(view()); #endif } else { - TEXT()->cursorRight(view()); + view()->text->cursorRight(view()); } - moveCursorUpdate(true, false); + moveCursorUpdate(); owner->clearMessage(); goto exit_with_message; } @@ -954,30 +946,30 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) case LFUN_UNKNOWN_ACTION: case LFUN_BREAKPARAGRAPH: case LFUN_BREAKLINE: - TEXT()->cursorRight(view()); + view()->text->cursorRight(view()); view()->switchKeyMap(); owner->view_state_changed(); break; case LFUN_RIGHT: - if (!TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { - TEXT()->cursorRight(view()); - moveCursorUpdate(true, false); + if (!view()->text->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { + view()->text->cursorRight(view()); + moveCursorUpdate(); owner->view_state_changed(); } goto exit_with_message; case LFUN_LEFT: - if (TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { - TEXT()->cursorRight(view()); - moveCursorUpdate(true, false); + if (view()->text->cursor.par()->isRightToLeftPar(owner->buffer()->params)) { + view()->text->cursorRight(view()); + moveCursorUpdate(); owner->view_state_changed(); } goto exit_with_message; case LFUN_DOWN: - if (boost::next(TEXT()->cursorRow()) != TEXT()->rows().end()) - TEXT()->cursorDown(view()); + if (boost::next(view()->text->cursorRow()) != view()->text->rows().end()) + view()->text->cursorDown(view()); else - TEXT()->cursorRight(view()); - moveCursorUpdate(true, false); + view()->text->cursorRight(view()); + moveCursorUpdate(); owner->view_state_changed(); goto exit_with_message; default: @@ -989,35 +981,31 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) switch (action) { - case LFUN_ESCAPE: - { - if (!view()->available()) break; + case LFUN_ESCAPE: { + if (!view()->available()) + break; // this function should be used always [asierra060396] - UpdatableInset * tli = - view()->theLockingInset(); + UpdatableInset * tli = view()->theLockingInset(); if (tli) { UpdatableInset * lock = tli->getLockingInset(); if (tli == lock) { view()->unlockInset(tli); - TEXT()->cursorRight(view()); - moveCursorUpdate(true, false); + view()->text->cursorRight(view()); + moveCursorUpdate(); owner->view_state_changed(); } else { - tli->unlockInsetInInset(view(), - lock, - true); + tli->unlockInsetInInset(view(), lock, true); } finishUndo(); // Tell the paragraph dialog that we changed paragraph dispatch(FuncRequest(LFUN_PARAGRAPH_UPDATE)); } + break; } - break; - // --- Misc ------------------------------------------- - case LFUN_WORDFINDFORWARD : - case LFUN_WORDFINDBACKWARD : { + case LFUN_WORDFINDFORWARD: + case LFUN_WORDFINDBACKWARD: { static string last_search; string searched_string; @@ -1028,27 +1016,23 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) searched_string = last_search; } bool fw = (action == LFUN_WORDFINDFORWARD); - if (!searched_string.empty()) { - lyxfind::LyXFind(view(), searched_string, fw); - } + if (!searched_string.empty()) + lyx::find::find(view(), searched_string, fw); + break; } - break; case LFUN_PREFIX: - { - if (view()->available() && !view()->theLockingInset()) { - view()->update(TEXT(), BufferView::SELECT); - } + if (view()->available() && !view()->theLockingInset()) + view()->update(); owner->message(keyseq.printOptions()); - } - break; + break; // --- Misc ------------------------------------------- case LFUN_EXEC_COMMAND: owner->focus_command_buffer(); break; - case LFUN_CANCEL: // RVDK_PATCH_5 + case LFUN_CANCEL: keyseq.reset(); meta_fake_bit = key_modifier::none; if (view()->available()) @@ -1057,20 +1041,17 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) setMessage(N_("Cancel")); break; - case LFUN_META_FAKE: // RVDK_PATCH_5 - { + case LFUN_META_FAKE: meta_fake_bit = key_modifier::alt; setMessage(keyseq.print()); - } - break; + break; case LFUN_READ_ONLY_TOGGLE: - if (owner->buffer()->lyxvc.inUse()) { + if (owner->buffer()->lyxvc.inUse()) owner->buffer()->lyxvc.toggleReadOnly(); - } else { + else owner->buffer()->setReadonly( !owner->buffer()->isReadonly()); - } break; case LFUN_CENTER: // this is center and redraw. @@ -1175,12 +1156,12 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) break; case LFUN_DEPTH_MIN: - changeDepth(view(), TEXT(false), DEC_DEPTH, false); + changeDepth(view(), view()->getLyXText(), DEC_DEPTH, false); owner->view_state_changed(); break; case LFUN_DEPTH_PLUS: - changeDepth(view(), TEXT(false), INC_DEPTH, false); + changeDepth(view(), view()->getLyXText(), INC_DEPTH, false); owner->view_state_changed(); break; @@ -1297,14 +1278,14 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) case LFUN_LAYOUT_TABULAR: if (view()->theLockingInset()) { - if (view()->theLockingInset()->lyxCode()==Inset::TABULAR_CODE) { + if (view()->theLockingInset()->lyxCode()== InsetOld::TABULAR_CODE) { InsetTabular * inset = static_cast (view()->theLockingInset()); inset->openLayoutDialog(view()); } else if (view()->theLockingInset()-> - getFirstLockingInsetOfType(Inset::TABULAR_CODE)!=0) { + getFirstLockingInsetOfType(InsetOld::TABULAR_CODE)!=0) { InsetTabular * inset = static_cast( - view()->theLockingInset()->getFirstLockingInsetOfType(Inset::TABULAR_CODE)); + view()->theLockingInset()->getFirstLockingInsetOfType(InsetOld::TABULAR_CODE)); inset->openLayoutDialog(view()); } } @@ -1533,7 +1514,7 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) case LFUN_SAVEPREFERENCES: { - Path p(user_lyxdir); + Path p(user_lyxdir()); lyxrc.write("preferences"); } break; @@ -1551,7 +1532,7 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) // if values really changed...but not very important right now. (Lgb) // All visible buffers will need resize view()->resize(); - view()->repaint(); + view()->update(); } break; @@ -1584,12 +1565,13 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) #warning FIXME!! The graphics cache no longer has a changeDisplay method. #endif #if 0 - grfx::GCache & gc = grfx::GCache::get(); + lyx::graphics::GCache & gc = + lyx::graphics::GCache::get(); gc.changeDisplay(true); #endif } - view()->repaint(); + view()->update(); break; } @@ -1636,7 +1618,8 @@ exit_with_message: view()->fitCursor(); // If we executed a mutating lfun, mark the buffer as dirty - if (!lyxaction.funcHasFlag(ev.action, LyXAction::NoBuffer) + if (!getStatus(ev).disabled() + && !lyxaction.funcHasFlag(ev.action, LyXAction::NoBuffer) && !lyxaction.funcHasFlag(ev.action, LyXAction::ReadOnly)) view()->buffer()->markDirty(); } @@ -1778,7 +1761,7 @@ void LyXFunc::open(string const & fname) make_pair(string(_("Documents|#o#O")), string(lyxrc.document_path)), make_pair(string(_("Examples|#E#e")), - string(AddPath(system_lyxdir, "examples")))); + string(AddPath(system_lyxdir(), "examples")))); FileDialog::Result result = fileDlg.open(initpath, @@ -1853,7 +1836,7 @@ void LyXFunc::doImport(string const & argument) make_pair(string(_("Documents|#o#O")), string(lyxrc.document_path)), make_pair(string(_("Examples|#E#e")), - string(AddPath(system_lyxdir, "examples")))); + string(AddPath(system_lyxdir(), "examples")))); string const extension = "*." + formats.extension(format) + "| " + formats.prettyName(format) @@ -1912,7 +1895,7 @@ void LyXFunc::closeBuffer() { if (bufferlist.close(owner->buffer(), true) && !quitting) { if (bufferlist.empty()) { - // need this otherwise SEGV may occur while + // need this otherwise SEGV may occur while // trying to set variables that don't exist // since there's no current buffer owner->getDialogs().hideBufferDependent(); @@ -1973,3 +1956,10 @@ BufferView * LyXFunc::view() const Assert(owner); return owner->view().get(); } + + +bool LyXFunc::wasMetaKey() const +{ + return (meta_fake_bit != key_modifier::none); +} +