X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetText.cpp;h=3ec6f40492288ea6c56736bfa6336c8db74c141b;hb=90f7007a2e6c78ffd031e4636ff909ab1bc2ddec;hp=55543ab0d76a45a014023d860a9b49062e80c0a4;hpb=2e764c2c666560e0682464a3229610da06fa8507;p=lyx.git diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 55543ab0d7..3ec6f40492 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -266,7 +266,10 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & cmd) { LYXERR(Debug::ACTION, "InsetText::doDispatch(): cmd: " << cmd); - if (isPassThru()) { +#if 0 +// FIXME: This code does not seem to be necessary anymore +// Remove for 2.1 if no counter-evidence is found. + if (isPassThru() && lyxCode() != ARG_CODE) { // Force any new text to latex_language FIXME: This // should only be necessary in constructor, but new // paragraphs that are created by pressing enter at @@ -276,6 +279,7 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & cmd) cur.current_font.setLanguage(latex_language); cur.real_current_font.setLanguage(latex_language); } +#endif switch (cmd.action()) { case LFUN_PASTE: @@ -341,7 +345,7 @@ bool InsetText::getStatus(Cursor & cur, FuncRequest const & cmd, if (&buffer().inset() == this || !cur.paragraph().layout().args().empty()) return text_.getStatus(cur, cmd, status); - Layout::LaTeXArgMap args = getLayout().latexargs(); + Layout::LaTeXArgMap args = getLayout().args(); Layout::LaTeXArgMap::const_iterator const lait = args.find(arg); if (lait != args.end()) { status.setEnabled(true); @@ -440,7 +444,7 @@ void InsetText::latex(otexstream & os, OutputParams const & runparams) const os << "\\protect"; os << '\\' << from_utf8(il.latexname()); if (!il.latexargs().empty()) - getOptArg(os, runparams); + getArgs(os, runparams); if (!il.latexparam().empty()) os << from_utf8(il.latexparam()); os << '{'; @@ -454,14 +458,14 @@ void InsetText::latex(otexstream & os, OutputParams const & runparams) const runparams.lastpos); os << "\\begin{" << from_utf8(il.latexname()) << "}"; if (!il.latexargs().empty()) - getOptArg(os, runparams); + getArgs(os, runparams); if (!il.latexparam().empty()) os << from_utf8(il.latexparam()); os << '\n'; } } else { if (!il.latexargs().empty()) - getOptArg(os, runparams); + getArgs(os, runparams); if (!il.latexparam().empty()) os << from_utf8(il.latexparam()); } @@ -487,12 +491,14 @@ void InsetText::latex(otexstream & os, OutputParams const & runparams) const if (!il.latexname().empty()) { if (il.latextype() == InsetLayout::COMMAND) { os << "}"; + if (!il.postcommandargs().empty()) + getArgs(os, runparams, true); } else if (il.latextype() == InsetLayout::ENVIRONMENT) { // A comment environment doesn't need a % before \n\end if (il.isDisplay() || runparams.inComment) - os << breakln; + os << breakln; else - os << safebreakln; + os << safebreakln; os << "\\end{" << from_utf8(il.latexname()) << "}\n"; if (!il.isDisplay()) os.protectSpace(true); @@ -601,7 +607,7 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & rp, if (opts & WriteInnerTag) xs << html::StartTag(il.htmlinnertag(), il.htmlinnerattr()); - // we will eventaully lose information about the containing inset + // we will eventually lose information about the containing inset if (!il.isMultiPar() || opts == JustText) runparams.html_make_pars = false; if (il.isPassThru()) @@ -618,15 +624,18 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & rp, return docstring(); } -void InsetText::getOptArg(otexstream & os, - OutputParams const & runparams_in) const +void InsetText::getArgs(otexstream & os, OutputParams const & runparams_in, + bool const post) const { OutputParams runparams = runparams_in; runparams.local_font = ¶graphs()[0].getFirstFontSettings(buffer().masterBuffer()->params()); if (isPassThru()) runparams.pass_thru = true; - latexArgInsets(paragraphs(), paragraphs().begin(), os, runparams, getLayout().latexargs()); + if (post) + latexArgInsets(paragraphs(), paragraphs().begin(), os, runparams, getLayout().postcommandargs(), "post:"); + else + latexArgInsets(paragraphs(), paragraphs().begin(), os, runparams, getLayout().latexargs()); }