-}
-
-
-void LyXScreen::drawFromTo(LyXText * text, BufferView * bv,
- int y1, int y2, int yo, int xo,
- bool internal)
-{
- lyxerr[Debug::GUI] << "screen: drawFromTo " << y1 << "-" << y2 << endl;
-
- int y_text = text->first_y + y1;
-
- // get the first needed row
- Row * row = text->getRowNearY(y_text);
- // y_text is now the real beginning of the row
-
- int y = y_text - text->first_y;
- // y1 is now the real beginning of row on the screen
-
- while (row != 0 && y < y2) {
- LyXText::text_status st = text->status();
- text->getVisibleRow(bv, y + yo,
- xo, row, y + text->first_y);
- internal = internal && (st != LyXText::CHANGED_IN_DRAW);
- while (internal && text->status() == LyXText::CHANGED_IN_DRAW) {
- text->fullRebreak(bv);
- st = LyXText::NEED_MORE_REFRESH;
- text->setCursor(bv, text->cursor.par(), text->cursor.pos());
- text->status(bv, st);
- text->getVisibleRow(bv, y + yo,
- xo, row, y + text->first_y);
- }
- y += row->height();
- row = row->next();
- }
- force_clear_ = false;
-
- // maybe we have to clear the screen at the bottom
- if ((y < y2) && text->bv_owner) {
- workarea().getPainter().fillRectangle(0, y,
- workarea().workWidth(), y2 - y,
- LColor::bottomarea);
- }
-}
-
-
-void LyXScreen::drawOneRow(LyXText * text, BufferView * bv, Row * row,
- int y_text, int yo, int xo)
-{
- int const y = y_text - text->first_y + yo;
-
- if (((y + row->height()) > 0) &&
- ((y - row->height()) <= static_cast<int>(workarea().workHeight()))) {
- text->getVisibleRow(bv, y, xo, row, y + text->first_y);
- }
- force_clear_ = false;