Some small update/redraw fixes.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2409 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jürgen Vigna 2001-08-03 09:54:36 +00:00
parent 2dd1a460ee
commit fcdb9597e1
4 changed files with 16 additions and 3 deletions

View 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();
}
}

View 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

View 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,

View 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())