X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCaption.cpp;h=941047f337ecb055aa39819919259a941ae2f073;hb=cc3e227cba3571bb8c383cd41348b932e3104df3;hp=1490c2cdb2e39637214136d9ea45266464441b1d;hpb=75bfed55079cab6b73fbea6ce4ae3f10d1af3b91;p=lyx.git diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp index 1490c2cdb2..941047f337 100644 --- a/src/insets/InsetCaption.cpp +++ b/src/insets/InsetCaption.cpp @@ -17,7 +17,6 @@ #include "Buffer.h" #include "BufferParams.h" #include "BufferView.h" -#include "Counters.h" #include "Cursor.h" #include "Dimension.h" #include "Floating.h" @@ -57,7 +56,7 @@ InsetCaption::InsetCaption(Buffer * buf, string const & type) labelwidth_(0), is_subfloat_(false), type_(type) { setDrawFrame(true); - setFrameColor(Color_collapsableframe); + setFrameColor(Color_collapsibleframe); } @@ -209,6 +208,8 @@ void InsetCaption::doDispatch(Cursor & cur, FuncRequest & cmd) break; } } + // no "changetype": + // fall through default: InsetText::doDispatch(cur, cmd); @@ -263,7 +264,16 @@ void InsetCaption::latex(otexstream & os, // \caption{...}, later we will make it take advantage // of the one of the caption packages. (Lgb) OutputParams runparams = runparams_in; + // Some fragile commands (labels, index entries) + // are output after the caption (#2154) + runparams.postpone_fragile_stuff = true; InsetText::latex(os, runparams); + if (!runparams.post_macro.empty()) { + // Output the stored fragile commands (labels, indices etc.) + // that need to be output after the caption. + os << runparams.post_macro; + runparams.post_macro.clear(); + } // Backwards compatibility: We always had a linebreak after // the caption (see #8514) os << breakln; @@ -328,6 +338,8 @@ void InsetCaption::getArgument(otexstream & os, rp.pass_thru = true; if (il.isNeedProtect()) rp.moving_arg = true; + if (il.isNeedMBoxProtect()) + ++rp.inulemcmd; rp.par_begin = 0; rp.par_end = paragraphs().size(); @@ -387,7 +399,8 @@ void InsetCaption::updateBuffer(ParIterator const & it, UpdateType utype) else name = master.B_(tclass.floats().getType(type).name()); docstring counter = from_utf8(type); - if ((is_subfloat_ = cnts.isSubfloat())) { + is_subfloat_ = cnts.isSubfloat(); + if (is_subfloat_) { // only standard captions allowed in subfloats type_ = "Standard"; counter = "sub-" + from_utf8(type);