]> git.lyx.org Git - features.git/commitdiff
Some small update/redraw fixes.
authorJürgen Vigna <jug@sad.it>
Fri, 3 Aug 2001 09:54:36 +0000 (09:54 +0000)
committerJürgen Vigna <jug@sad.it>
Fri, 3 Aug 2001 09:54:36 +0000 (09:54 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2409 a592a061-630c-0410-9148-cb99ea01b6c8

src/BufferView_pimpl.C
src/ChangeLog
src/screen.C
src/text.C

index 2a4cc26f0ee04e7d4320b3a5f1bba5ba08369cf5..5e41617770f06cf5fc0c9b67c87b8d5a27bb10f5 100644 (file)
@@ -970,16 +970,19 @@ void BufferView::Pimpl::update()
        {
                LyXText::text_status st = bv_->text->status();
                screen_->update(bv_->text, bv_);
+               bool fitc = false;
                while(bv_->text->status() == LyXText::CHANGED_IN_DRAW) {
                        if (bv_->text->fullRebreak(bv_)) {
                                st = LyXText::NEED_MORE_REFRESH;
                                bv_->text->setCursor(bv_, bv_->text->cursor.par(),
                                                                         bv_->text->cursor.pos());
-                               fitCursor();
+                               fitc = true;
                        }
                        bv_->text->status(bv_, st);
                        screen_->update(bv_->text, bv_);
                }
+               if (fitc)
+                       fitCursor();
        }
 }
 
index f8a2dda21c30a49c08e7e6297c2c7422ebfc0f22..ab8ade4619b0c4775b5c4e101fb1f1b9b331b8af 100644 (file)
@@ -1,3 +1,13 @@
+2001-08-03  Juergen Vigna  <jug@sad.it>
+
+       * BufferView_pimpl.C (update): do the fitCursor only at the end!
+
+       * screen.C (drawFromTo): don't call fitcursor here and do the loop
+       only if status not is already CHANGED_IN_DRAW (second level).
+
+       * text.C (draw): don't set the need_break_row when inside an
+       InsetText LyXText.
+
 2001-08-02  Lars Gullik Bjønnes  <larsbj@birdstep.com>
 
        * buffer.C (parseSingleLyXformat2Token): handle more latex
index f2c195a559f3883e4b0d5233a4fc1595f32e255f..ba1dc7dec4b6a537f86fd216343e1e3a730da336 100644 (file)
@@ -128,11 +128,11 @@ void LyXScreen::drawFromTo(LyXText * text, BufferView * bv,
                LyXText::text_status st = text->status();
                text->getVisibleRow(bv, y + y_offset,
                                    x_offset, row, y + text->first);
+               internal = internal && (st != LyXText::CHANGED_IN_DRAW);
                while(internal && text->status() == LyXText::CHANGED_IN_DRAW) {
                        if (text->fullRebreak(bv)) {
                                st = LyXText::NEED_MORE_REFRESH;
                                text->setCursor(bv, text->cursor.par(), text->cursor.pos());
-                               bv->fitCursor();
                        }
                        text->status(bv, st);
                        text->getVisibleRow(bv, y + y_offset,
index 6d14ad0b2b098518efa1bcd3786fb34070bf06cf..f94a16403fbaf726ea2210e5d583dc87bca1af13 100644 (file)
@@ -440,7 +440,7 @@ void LyXText::draw(BufferView * bview, Row const * row,
                        tmpinset->update(bview, font, false);
                        tmpinset->draw(bview, font, offset+row->baseline(), x,
                                       cleared);
-                       if (!need_break_row &&
+                       if (!need_break_row && !inset_owner &&
                            bview->text->status() == CHANGED_IN_DRAW)
                        {
                                if (row->previous() && row->previous()->par() == row->par())