pit_type const pit_;
Paragraph const & par_;
+ /// is row erased? (change tracking)
+ bool erased_;
+
// Looks ugly - is
double const xo_;
int const yo_; // current baseline
LyXText const & text, pit_type pit, Row const & row, int x, int y)
: bv_(*pi.base.bv), pain_(pi.pain), text_(text), pars_(text.paragraphs()),
row_(row), pit_(pit), par_(text.paragraphs()[pit]),
+ erased_(pi.erased_),
xo_(x), yo_(y), width_(text_.width())
{
RowMetrics m = text_.computeRowMetrics(pit, row_);
PainterInfo pi(const_cast<BufferView *>(&bv_), pain_);
pi.base.font = font;
pi.ltr_pos = (text_.bidi.level(pos) % 2 == 0);
+ pi.erased_ = erased_ || isDeletedText(par_, pos);
theCoords.insets().add(inset, int(x_), yo_);
inset->drawSelection(pi, int(x_), yo_);
inset->draw(pi, int(x_), yo_);
double const orig_x = x_;
- char const c = par_.getChar(pos);
-
- if (c == Paragraph::META_INSET) {
+ if (par_.isInset(pos)) {
paintInset(pos, orig_font);
++vpos;
paintForeignMark(orig_x, orig_font);
}
// usual characters, no insets
+ char const c = par_.getChar(pos);
// special case languages
std::string const & lang = orig_font.language()->lang();
} else {
spacing_val = buffer.params().spacing().getValue();
}
-#ifdef WITH_WARNINGS
-#warning Look is this correct?
-#endif
+
int const labeladdon = int(font_metrics::maxHeight(font) * layout->spacing.getValue() * spacing_val);
int const maxdesc = int(font_metrics::maxDescent(font) * layout->spacing.getValue() * spacing_val)
else
spacing_val = buffer.params().spacing().getValue();
+ int const labeladdon = int(font_metrics::maxHeight(font) * layout->spacing.getValue() * spacing_val);
+
int maxdesc =
int(font_metrics::maxDescent(font) * layout->spacing.getValue() * spacing_val
+ (layout->labelbottomsep * defaultRowHeight()));
x = width_ - leftMargin() -
font_metrics::width(str, font);
}
- pain_.text(int(x), yo_ - maxdesc, str, font);
+ pain_.text(int(x), yo_ - maxdesc - labeladdon, str, font);
}
}
}
}
const int width_pos =
- text_.singleWidth(par_, vpos, par_.getChar(vpos), font);
+ text_.singleWidth(par_, pos, par_.getChar(pos), font);
if (x_ + width_pos < 0) {
x_ += width_pos;