]> git.lyx.org Git - features.git/commitdiff
simplify setInsetFont, removing a potential bug (an invalid DocIterator was built...
authorAlfredo Braunstein <abraunst@lyx.org>
Tue, 21 Aug 2007 10:54:04 +0000 (10:54 +0000)
committerAlfredo Braunstein <abraunst@lyx.org>
Tue, 21 Aug 2007 10:54:04 +0000 (10:54 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19690 a592a061-630c-0410-9148-cb99ea01b6c8

src/Text2.cpp

index 04f23499a5a45318d5885b55316bfd083058d979..dcabce00ed3ec66c5499307a6e3567bae5df78ac 100644 (file)
@@ -314,25 +314,16 @@ void Text::setInsetFont(Buffer const & buffer, pit_type pit,
                     pars_[pit].getInset(pos)->noFontChange());
 
        Inset * const inset = pars_[pit].getInset(pos);
-       DocIterator dit = doc_iterator_begin(*inset);
-       // start of the last cell
-       DocIterator end = dit;
-       end.idx() = end.lastidx();
-
-       while (true) {
-               Text * text = dit.text();
-               Inset * cell = dit.realInset();
-               if (text && cell) {
-                       DocIterator cellbegin = doc_iterator_begin(*cell);
+       CursorSlice::idx_type endidx = inset->nargs();
+       for (CursorSlice cs(*inset); cs.idx() != endidx; ++cs.idx()) {
+               Text * text = cs.text();
+               if (text) {
                        // last position of the cell
-                       DocIterator cellend = cellbegin;
+                       CursorSlice cellend = cs;
                        cellend.pit() = cellend.lastpit();
                        cellend.pos() = cellend.lastpos();
-                       text->setFont(buffer, cellbegin.top(), cellend.top(), font, toggleall);
+                       text->setFont(buffer, cs, cellend, font, toggleall);
                }
-               if (dit == end)
-                       break;
-               dit.forwardIdx();
        }
 }