]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph.C
Continue to improve GtkLengthEntry
[lyx.git] / src / paragraph.C
index 36eafed96a4b77d5a7f169fc93cdabe7788f7701..227568b43f2067155a02c48d60358c590768753c 100644 (file)
@@ -48,6 +48,7 @@
 #include <boost/tuple/tuple.hpp>
 #include <boost/bind.hpp>
 
+#include <algorithm>
 #include <list>
 #include <stack>
 #include <sstream>
@@ -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();
@@ -1659,9 +1669,9 @@ void Paragraph::setChange(lyx::pos_type pos, Change::Type type)
 }
 
 
-void Paragraph::markErased()
+void Paragraph::markErased(bool erased)
 {
-       pimpl_->markErased();
+       pimpl_->markErased(erased);
 }