]> git.lyx.org Git - lyx.git/commitdiff
* paragraph_pimpl.C: fix a seg fault when accepting a change
authorMichael Schmitt <michael.schmitt@teststep.org>
Sun, 17 Dec 2006 15:09:32 +0000 (15:09 +0000)
committerMichael Schmitt <michael.schmitt@teststep.org>
Sun, 17 Dec 2006 15:09:32 +0000 (15:09 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16315 a592a061-630c-0410-9148-cb99ea01b6c8

src/paragraph_pimpl.C

index 1ece42dadb61f5810e112abdce7e95087214ce8f..e0ccc92fbff29c9fcf28478edb92aa11d5dea499 100644 (file)
@@ -163,14 +163,23 @@ void Paragraph::Pimpl::acceptChanges(pos_type start, pos_type end)
 {
        BOOST_ASSERT(start >= 0 && start <= size());
        BOOST_ASSERT(end > start && end <= size() + 1);
-       
+
        for (pos_type pos = start; pos < end; ++pos) {
                switch (lookupChange(pos).type) {
                        case Change::UNCHANGED:
+                               // accept changes in nested inset
+                               if (pos < size() && owner_->isInset(pos)) {
+                                       owner_->getInset(pos)->acceptChanges();
+                               }
+
                                break;
 
                        case Change::INSERTED:
                                changes_.set(Change(Change::UNCHANGED), pos);
+                               // also accept changes in nested inset
+                               if (pos < size() && owner_->isInset(pos)) {
+                                       owner_->getInset(pos)->acceptChanges();
+                               }
                                break;
 
                        case Change::DELETED:
@@ -184,10 +193,6 @@ void Paragraph::Pimpl::acceptChanges(pos_type start, pos_type end)
                                break;
                }
 
-               // also accept changes in nested insets
-               if (pos < size() && owner_->isInset(pos)) {
-                       owner_->getInset(pos)->acceptChanges();
-               }
        }
 }
 
@@ -200,7 +205,7 @@ void Paragraph::Pimpl::rejectChanges(pos_type start, pos_type end)
        for (pos_type pos = start; pos < end; ++pos) {
                switch (lookupChange(pos).type) {
                        case Change::UNCHANGED:
-                               // also reject changes inside of insets
+                               // reject changes in nested inset
                                if (pos < size() && owner_->isInset(pos)) {
                                        owner_->getInset(pos)->rejectChanges();
                                }