#include "Buffer.h"
#include "BufferView.h"
#include "BufferParams.h"
-#include "Counters.h"
#include "Cursor.h"
-#include "DispatchResult.h"
#include "Encoding.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
#include "InsetCaption.h"
#include "InsetLabel.h"
+#include "InsetLayout.h"
#include "Language.h"
#include "LaTeXFeatures.h"
#include "Lexer.h"
#include "output_latex.h"
#include "output_docbook.h"
#include "output_xhtml.h"
-#include "OutputParams.h"
-#include "TextClass.h"
#include "TexRow.h"
#include "texstream.h"
#include "frontends/alert.h"
#include "frontends/Application.h"
+#include <cstring>
#include <regex>
#include <sstream>
}
-Inset::RowFlags InsetListings::rowFlags() const
+int InsetListings::rowFlags() const
{
return params().isInline() || params().isFloat() ? Inline : Display | AlignLeft;
}
}
}
++par;
- // for the inline case, if there are multiple paragraphs
+ // Add new line between paragraphs in displayed listings.
+ // Exception: merged paragraphs in change tracking mode.
+ // Also, for the inline case, if there are multiple paragraphs
// they are simply joined. Otherwise, expect latex errors.
- if (par != end && !isInline && !captionline)
+ if (par != end && !isInline && !captionline && !par->parEndChange().deleted())
code += "\n";
}
if (isInline) {
docstring const InsetListings::buttonLabel(BufferView const & bv) const
{
// FIXME UNICODE
- if (decoration() == InsetLayout::CLASSIC)
- return isOpen(bv) ? _("Listing") : getNewLabel(_("Listing"));
- else
- return getNewLabel(_("Listing"));
+ docstring const locked = tempfile_ ? docstring(1, 0x1F512) : docstring();
+ if (decoration() == InsetDecoration::CLASSIC)
+ return locked + (isOpen(bv) ? _("Listing") : getNewLabel(_("Listing")));
+ return locked + getNewLabel(_("Listing"));
}