]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.C
More ascii-export fixes and when making copy of single tabular cells now the
[lyx.git] / src / paragraph_pimpl.C
index c28db75b3316c85d8a8a3028c44f0e169b7d6b38..be57e47838a49e86e0db83a8fe6ac00c0443795d 100644 (file)
@@ -150,6 +150,7 @@ void Paragraph::Pimpl::insertInset(pos_type pos,
                        "there is an inset in position: " << pos << std::endl;
        } else {
                owner_->insetlist.insert(it, InsetTable(pos, inset));
+               inset->parOwner(owner_);
        }
        
        if (inset_owner)
@@ -219,9 +220,9 @@ void Paragraph::Pimpl::erase(pos_type pos)
 
 
 void Paragraph::Pimpl::simpleTeXBlanks(std::ostream & os, TexRow & texrow,
-                                      pos_type const i,
-                                      int & column, LyXFont const & font,
-                                      LyXLayout const & style)
+                                       pos_type const i,
+                                       int & column, LyXFont const & font,
+                                       LyXLayout const & style)
 {
        if (style.pass_thru) return;
        if (column > tex_code_break_column
@@ -230,6 +231,7 @@ void Paragraph::Pimpl::simpleTeXBlanks(std::ostream & os, TexRow & texrow,
            && (i < size() - 1)
            // same in FreeSpacing mode
            && !style.free_spacing
+               && !owner_->isFreeSpacing()
            // In typewriter mode, we want to avoid 
            // ! . ? : at the end of a line
            && !(font.family() == LyXFont::TYPEWRITER_FAMILY
@@ -255,9 +257,11 @@ void Paragraph::Pimpl::simpleTeXBlanks(std::ostream & os, TexRow & texrow,
 }
 
 
-bool Paragraph::Pimpl::isTextAt(BufferParams const & bp, LyXFont & font,
+bool Paragraph::Pimpl::isTextAt(BufferParams const & bp,
                                string const & str, pos_type pos)
 {
+       LyXFont const & font = owner_->getFont(bp, pos);
        for (string::size_type i = 0; i < str.length(); ++i) {
                if (pos + static_cast<pos_type>(i) >= size())
                        return false;
@@ -307,7 +311,7 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const * buf,
                        }
 
                        int tmp = inset->latex(buf, os, moving_arg,
-                                              style.free_spacing);
+                                              style.free_spacing);
 
                        if (close)
                                os << "}";
@@ -485,7 +489,7 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const * buf,
                        size_t pnr = 0;
  
                        for (; pnr < phrases_nr; ++pnr) {
-                               if (isTextAt(bparams, font, special_phrases[pnr][0], i)) {
+                               if (isTextAt(bparams, special_phrases[pnr][0], i)) {
                                        os << special_phrases[pnr][1];
                                        i += special_phrases[pnr][0].length() - 1;
                                        column += special_phrases[pnr][1].length() - 1;