commit dd7863b6ac70d3d1e6298306dab6c3b7235c9e99
Author: Richard Heck <[email protected]>
Date:   Sat Jul 30 01:29:06 2016 -0400

    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 a40572f..3f6a4a6 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 613249b..149a40c 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 e1538e2..fa79c52 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 df4f6e2..0bc38a3 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 585ee2c..1dd4ef1 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;
 }

Reply via email to