bool LyXText::IsBoundary(Buffer const * buf, LyXParagraph * par,
LyXParagraph::size_type pos) const
{
- if (!lyxrc.rtl_support)
- return false; // This is just for speedup
+ if (!lyxrc.rtl_support || pos == 0)
+ return false;
if (!bidi_InRange(pos - 1)) {
- lyxerr << "LyXText::IsBoundary This shouldn't happen\n";
+ lyxerr << "LyXText::IsBoundary This shouldn't happen." << endl;
return false;
}
// tmpinset->update(bview, font, false);
tmpinset->draw(bview, font, offset+row->baseline(), x,
cleared);
+#ifdef SEEMS_TO_BE_NOT_NEEDED
if (status == CHANGED_IN_DRAW) {
UpdateInset(bview, tmpinset);
status = CHANGED_IN_DRAW;
}
+#endif
}
++vpos;
} else if (clear_area) {
#ifdef WITH_WARNINGS
#warning Should be fixed with a lyxinset::clear_width(bv, font) function! (Jug)
+#warning Should we not fix this in the Painter, please have a look Lars! (Jug)
#endif
- int const w = (inset_owner ?
- inset_owner->width(bview, font)-2 : ww);
- pain.fillRectangle(x_offset, y_offset, w, row_ptr->height());
+ int w = (inset_owner ? inset_owner->width(bview, font)-2 : ww);
+ int h = row_ptr->height();
+ int x = x_offset;
+ int y = y_offset;
+ if (y < 0) {
+ h += y;
+ y = 0;
+ }
+
+ pain.fillRectangle(x, y, w, h);
} else if (inset != 0) {
int h = row_ptr->baseline() - inset->ascent(bview, font);
if (h > 0) {
for (int i = 1; i <= depth; ++i) {
int const line_x = (LYX_PAPER_MARGIN / 5) *
- (i + minipage) + box_x;
+ (i + minipage) + box_x + x_offset;
pain.line(line_x, y_offset, line_x,
y_offset + row_ptr->height() - 1 - (i - next_depth - 1) * 3,
LColor::depthbar);