]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.cpp
Whitespace
[lyx.git] / src / Paragraph.cpp
index 198705c3b885e1d54c99c1e463a67234d0ff9b9c..710587bb578a4a736420b7eac727032dc30f7b76 100644 (file)
@@ -581,18 +581,6 @@ void Paragraph::addChangesToToc(DocIterator const & cdit, Buffer const & buf,
 }
 
 
-void Paragraph::addChangesToBuffer(Buffer const & buf) const
-{
-       d->changes_.updateBuffer(buf);
-}
-
-
-bool Paragraph::isChangeUpdateRequired() const
-{
-       return d->changes_.isUpdateRequired();
-}
-
-
 bool Paragraph::isDeleted(pos_type start, pos_type end) const
 {
        LASSERT(start >= 0 && start <= size(), return false);
@@ -611,6 +599,12 @@ bool Paragraph::isChanged(pos_type start, pos_type end) const
 }
 
 
+bool Paragraph::isChanged() const
+{
+       return d->changes_.isChanged();
+}
+
+
 bool Paragraph::isMergedOnEndOfParDeletion(bool trackChanges) const
 {
        // keep the logic here in sync with the logic of eraseChars()
@@ -660,8 +654,8 @@ void Paragraph::setChange(pos_type pos, Change const & change)
 
        // see comment in setChange(Change const &) above
        if (!change.deleted() && pos < size())
-                       if (Inset * inset = getInset(pos))
-                               inset->setChange(change);
+               if (Inset * inset = getInset(pos))
+                       inset->setChange(change);
 }
 
 
@@ -2477,9 +2471,14 @@ void Paragraph::latex(BufferParams const & bparams,
                Change const & change = runparams.inDeletedInset
                        ? runparams.changeOfDeletedInset : lookupChange(i);
 
+               char_type const c = d->text_[i];
+
                // Check whether a display math inset follows
-               if (d->text_[i] == META_INSET
+               if (c == META_INSET
                    && i >= start_pos && (end_pos == -1 || i < end_pos)) {
+                       if (isDeleted(i))
+                               runparams.ctObject = getInset(i)->CtObject(runparams);
+       
                        InsetMath const * im = getInset(i)->asInsetMath();
                        if (im && im->asHullInset()
                            && im->asHullInset()->outerDisplay()) {
@@ -2593,8 +2592,6 @@ void Paragraph::latex(BufferParams const & bparams,
                        }
                }
 
-               char_type const c = d->text_[i];
-
                // A display math inset inside an ulem command will be output
                // as a box of width \linewidth, so we have to either disable
                // indentation if the inset starts a paragraph, or start a new
@@ -2729,6 +2726,16 @@ void Paragraph::latex(BufferParams const & bparams,
                                                runningChange, style, i, column);
                                if (incremented)
                                        --parInline;
+
+                               if (runparams.ctObject == OutputParams::CT_DISPLAYOBJECT
+                                   || runparams.ctObject == OutputParams::CT_UDISPLAYOBJECT) {
+                                       // Close \lyx*deleted and force its
+                                       // reopening (if needed)
+                                       os << '}';
+                                       column++;
+                                       runningChange = Change(Change::UNCHANGED);
+                                       runparams.ctObject = OutputParams::CT_NORMAL;
+                               }
                        }
                } else if (i >= start_pos && (end_pos == -1 || i < end_pos)) {
                        if (!bparams.useNonTeXFonts)