Hi,

please see following patch for libs/textlayout/KoTextDocumentLayout.cpp to 
prevent doing full relayouts just cause we update the page-variable.

This fixes the infinite loop with the 
http://www.zagge.de/anchor/110407/wiki.services.openoffice.org%252Fw%252Fimages%252F9%252F91%252F%25305%25308IG3-
SlidesNotesHandouts.odt
http://www.zagge.de/anchor/110407/wiki.services.openoffice.org%252Fw%252Fimages%252Fe%252Fe6%252F%25303%25304CG-
ChartsAndGraphs.odt

Ok to commit (will remove the #if 0-part + add dox before)?

diff --git a/libs/textlayout/KoTextDocumentLayout.cpp 
b/libs/textlayout/KoTextDocumentLayout.cpp
index 71f7b91..0a5ec61 100644
--- a/libs/textlayout/KoTextDocumentLayout.cpp
+++ b/libs/textlayout/KoTextDocumentLayout.cpp
@@ -245,12 +245,21 @@ void KoTextDocumentLayout::documentChanged(int position, 
int charsRemoved, int c
         from = block.position() + block.length();
     }

+#if 0
 //TODO FIXME make corresponding root area as dirty and then do layout
 // right now we are just marking all as dirty
     foreach (KoTextLayoutRootArea *rootArea, d->rootAreaList) {
         if (!rootArea->isDirty())
             rootArea->setDirty();
     }
+#else
+    KoTextLayoutRootArea *area = rootAreaForPosition(position);
+    if (!area)
+        return;
+    for(int i = qMax(0, d->rootAreaList.indexOf(area)); i < d-
>rootAreaList.count(); ++i)
+        d->rootAreaList[i]->setDirty();
+#endif
+
     emitLayoutIsDirty();
 }
 
_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to