]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetListings.cpp
Fix logic of new InsetFlex::updateBuffer() routine from a9614f1.
[lyx.git] / src / insets / InsetListings.cpp
index 0d61af671a02f8a45877b2011389674da79c13ee..63621e103332983748d93555ed7595a52d478085 100644 (file)
@@ -277,14 +277,25 @@ docstring InsetListings::xhtml(XHTMLStream & os, OutputParams const & rp) const
                docstring caption = getCaptionHTML(rp);
                if (!caption.empty())
                        out << html::StartTag("div", "class='float-caption'") 
+                           << XHTMLStream::ESCAPE_NONE
                            << caption << html::EndTag("div");
        }
 
-       out << html::StartTag("pre");
+       InsetLayout const & il = getLayout();
+       string const tag = il.htmltag();
+       string attr = "class ='listings";
+       string const lang = params().getParamValue("language");
+       if (!lang.empty())
+               attr += " " + lang;
+       attr += "'";
+       out << html::StartTag(tag, attr);
        OutputParams newrp = rp;
        newrp.html_disable_captions = true;
+       // We don't want to convert dashes here. That's the only conversion we
+       // do for XHTML, so this is safe.
+       newrp.pass_thru = true;
        docstring def = InsetText::insetAsXHTML(out, newrp, InsetText::JustText);
-       out << html::EndTag("pre");
+       out << html::EndTag(tag);
 
        if (isInline) {
                out << html::CompTag("br");
@@ -335,9 +346,12 @@ bool InsetListings::getStatus(Cursor & cur, FuncRequest const & cmd,
                case LFUN_INSET_DIALOG_UPDATE:
                        status.setEnabled(true);
                        return true;
-               case LFUN_CAPTION_INSERT:
-                       status.setEnabled(!params().isInline());
-                       return true;
+               case LFUN_CAPTION_INSERT: {
+                       if (params().isInline()) {
+                               status.setEnabled(false);
+                               return true;
+                       }
+               }
                default:
                        return InsetCollapsable::getStatus(cur, cmd, status);
        }
@@ -384,7 +398,7 @@ docstring InsetListings::getCaption(OutputParams const & runparams) const
        TexRow texrow;
        odocstringstream ods;
        otexstream os(ods, texrow);
-       ins->getOptArg(os, runparams);
+       ins->getArgs(os, runparams);
        ins->getArgument(os, runparams);
        // the caption may contain \label{} but the listings
        // package prefer caption={}, label={}