// Constructor
LyXScreen::LyXScreen(WorkArea & o) //, LyXText * text_ptr)
- : owner(o) //, text(text_ptr)
+ : owner(o), force_clear(true) //, text(text_ptr)
{
// the cursor isnt yet visible
cursor_visible = false;
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) {
owner.getPainter().fillRectangle(0, y,
} while (text->status == LyXText::CHANGED_IN_DRAW);
text->status = st;
}
+ force_clear = false;
}
}
-void LyXScreen::ToggleSelection(LyXText * text, bool kill_selection)
+void LyXScreen::ToggleSelection(LyXText * text, bool kill_selection,
+ int y_offset, int x_offset)
{
// only if there is a selection
if (!text->selection) return;
if (kill_selection)
text->selection = 0;
- DrawFromTo(text, top - text->first, bottom - text->first);
+ DrawFromTo(text, top - text->first, bottom - text->first,
+ y_offset, x_offset);
expose(0, top - text->first,
owner.workWidth(),
bottom - text->first - (top - text->first));
bottom = min(max(ulong(bottom), text->first), text->first + owner.height());
top = min(max(ulong(top), text->first), text->first + owner.height());
-
+
DrawFromTo(text, top - text->first, bottom - text->first, y_offset,
x_offset);
expose(0, top - text->first, owner.workWidth(),