From dd7863b6ac70d3d1e6298306dab6c3b7235c9e99 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 30 Jul 2016 01:29:06 -0400 Subject: [PATCH] Fix thinko from earlier commit. We need to output the deferred material AFTER the paragraph is closed. --- lib/layouts/stdinsets.inc | 4 +++- src/insets/InsetCaption.cpp | 14 +++++++++----- src/insets/InsetFloat.cpp | 2 +- src/insets/InsetText.cpp | 8 ++++---- src/output_xhtml.cpp | 7 ++++--- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/layouts/stdinsets.inc b/lib/layouts/stdinsets.inc index a40572f9a8..3f6a4a6114 100644 --- a/lib/layouts/stdinsets.inc +++ b/lib/layouts/stdinsets.inc @@ -556,13 +556,14 @@ InsetLayout Caption:Standard LabelString standard LaTeXType command LatexName caption - NeedProtect 1 + NeedProtect 1 MultiPar false Argument 1 LabelString "Short Title|S" Tooltip "The caption as it appears in the list of figures/tables" InsertCotext 1 EndArgument + HTMLTag div HTMLStyle div.float-caption { text-align: center; @@ -580,6 +581,7 @@ InsetLayout Caption:Unnumbered LabelString unlabelled LatexName caption* ResetArgs 1 + HTMLAttr "class='float-caption float-caption-unnumbered'" End diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp index 613249b6b2..149a40c93b 100644 --- a/src/insets/InsetCaption.cpp +++ b/src/insets/InsetCaption.cpp @@ -293,7 +293,7 @@ int InsetCaption::docbook(odocstream & os, } -docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const +docstring InsetCaption::xhtml(XHTMLStream &, OutputParams const & rp) const { if (rp.html_disable_captions) return docstring(); @@ -308,10 +308,14 @@ docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const else attr = attr + " class='" + our_class + "'"; } - xs << html::StartTag(tag, attr); - docstring def = getCaptionAsHTML(xs, rp); - xs << html::EndTag(tag); - return def; + odocstringstream ods; + XHTMLStream ourxs(ods); + ourxs << html::StartTag(tag, attr) << html::CR(); + docstring def = getCaptionAsHTML(ourxs, rp); + ourxs << html::EndTag(tag) << html::CR(); + if (!def.empty()) + return ods.str() + "\n" + def; + return ods.str(); } diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp index e1538e2635..fa79c52382 100644 --- a/src/insets/InsetFloat.cpp +++ b/src/insets/InsetFloat.cpp @@ -300,7 +300,7 @@ docstring InsetFloat::xhtml(XHTMLStream & xs, OutputParams const & rp) const odocstringstream ods; XHTMLStream newxs(ods); - newxs << html::StartTag(htmltype, attr); + newxs << html::StartTag(htmltype, attr) << html::CR(); InsetText::XHTMLOptions const opts = InsetText::WriteLabel | InsetText::WriteInnerTag; docstring deferred = InsetText::insetAsXHTML(newxs, rp, opts); diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index df4f6e2193..0bc38a3704 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -621,7 +621,7 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & rp, InsetLayout const & il = getLayout(); if (opts & WriteOuterTag) - xs << html::StartTag(il.htmltag(), il.htmlattr()); + xs << html::StartTag(il.htmltag(), il.htmlattr()) << html::CR(); if ((opts & WriteLabel) && !il.counter().empty()) { BufferParams const & bp = buffer().masterBuffer()->params(); @@ -633,9 +633,9 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & rp, cntrs.counterLabel(from_utf8(il.htmllabel()), bp.language->code()); // FIXME is this check necessary? if (!lbl.empty()) { - xs << html::StartTag(il.htmllabeltag(), il.htmllabelattr()); - xs << lbl; - xs << html::EndTag(il.htmllabeltag()); + xs << html::StartTag(il.htmllabeltag(), il.htmllabelattr()) + << lbl + << html::EndTag(il.htmllabeltag()); } } } diff --git a/src/output_xhtml.cpp b/src/output_xhtml.cpp index 585ee2cb34..1dd4ef1bda 100644 --- a/src/output_xhtml.cpp +++ b/src/output_xhtml.cpp @@ -878,13 +878,14 @@ ParagraphList::const_iterator makeParagraphs(Buffer const & buf, runparams, text.outerFont(distance(begin, par)), open_par, close_par); - if (!deferred.empty()) { - xs << XHTMLStream::ESCAPE_NONE << deferred << html::CR(); - } if (close_par) { closeTag(xs, lay); xs << html::CR(); } + + if (!deferred.empty()) { + xs << XHTMLStream::ESCAPE_NONE << deferred << html::CR(); + } } return pend; } -- 2.39.2