X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fparagraph.C;h=227568b43f2067155a02c48d60358c590768753c;hb=37d42d45f3f4a5d3e916a080af50b37ae4a9d118;hp=12d91ccb62e2ebff0719d0f532f6b95be1cf62cd;hpb=52a2eb2c52bd990b44c35927338341fb6aefa4b0;p=lyx.git diff --git a/src/paragraph.C b/src/paragraph.C index 12d91ccb62..227568b43f 100644 --- a/src/paragraph.C +++ b/src/paragraph.C @@ -48,6 +48,7 @@ #include #include +#include #include #include #include @@ -80,7 +81,8 @@ Paragraph::Paragraph() Paragraph::Paragraph(Paragraph const & par) : itemdepth(par.itemdepth), insetlist(par.insetlist), dim_(par.dim_), - rows_(par.rows_), layout_(par.layout_), + rows_(par.rows_), rowSignature_(par.rowSignature_), + layout_(par.layout_), text_(par.text_), begin_of_body_(par.begin_of_body_), pimpl_(new Paragraph::Pimpl(*par.pimpl_, this)) { @@ -106,6 +108,7 @@ Paragraph & Paragraph::operator=(Paragraph const & par) rows_ = par.rows_; dim_ = par.dim_; + rowSignature_ = par.rowSignature_; layout_ = par.layout(); text_ = par.text_; begin_of_body_ = par.begin_of_body_; @@ -333,8 +336,15 @@ FontSpan Paragraph::fontSpan(lyx::pos_type pos) const Pimpl::FontList::const_iterator cit = pimpl_->fontlist.begin(); Pimpl::FontList::const_iterator end = pimpl_->fontlist.end(); for (; cit != end; ++cit) { - if (cit->pos() >= pos) - return FontSpan(start, cit->pos()); + if (cit->pos() >= pos) { + if (pos >= beginOfBody()) + return FontSpan(std::max(start, beginOfBody()), + cit->pos()); + else + return FontSpan(start, + std::min(beginOfBody() - 1, + cit->pos())); + } start = cit->pos() + 1; } @@ -695,7 +705,7 @@ InsetBibitem * Paragraph::bibitem() const bool Paragraph::forceDefaultParagraphs() const { - return inInset() && inInset()->forceDefaultParagraphs(inInset()); + return inInset() && inInset()->forceDefaultParagraphs(0); } @@ -1013,7 +1023,7 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf, if (output || running_change != Change::DELETED) { OutputParams rp = runparams; rp.free_spacing = style->free_spacing; - rp.local_language = font.language(); + rp.local_font = &font; rp.intitle = style->intitle; pimpl_->simpleTeXSpecialChars(buf, bparams, os, texrow, rp, @@ -1590,7 +1600,7 @@ string const Paragraph::asString(Buffer const & buffer, if (IsPrintable(c)) os << c; else if (c == META_INSET) - getInset(i)->plaintext(buffer, os, runparams); + getInset(i)->textString(buffer, os, runparams); } return os.str();