/// "temporary"
LyXFont const RowPainter::getFont(pos_type pos) const
{
- return text_.getFont(par_, pos);
+ LyXFont pf(text_.getFont(par_, pos));
+ text_.applyOuterFont(pf);
+ return pf;
}
// start of appendix?
if (parparams.startOfAppendix())
- y_top += paintAppendixStart(yo_ + y_top + 2 * defaultRowHeight());
+ y_top += paintAppendixStart(yo_ - row_.ascent() + 2 * defaultRowHeight());
Buffer const & buffer = *bv_.buffer();
|| layout->latextype != LATEX_ENVIRONMENT
|| is_seq)) {
- LyXFont font = getLabelFont();
- if (!par_.getLabelstring().empty()) {
+ LyXFont const font = getLabelFont();
+ string const str = par_.getLabelstring();
+ if (!str.empty()) {
double x = x_;
- string const str = par_.getLabelstring();
// this is special code for the chapter layout. This is
// printed in an extra row and has a pagebreak at
// the top.
if (layout->counter == "chapter") {
- if (buffer.params().secnumdepth >= 0) {
- double spacing_val = 1.0;
- if (!parparams.spacing().isDefault()) {
- spacing_val = parparams.spacing().getValue();
- } else {
- spacing_val = buffer.params().spacing().getValue();
- }
+ double spacing_val = 1.0;
+ if (!parparams.spacing().isDefault()) {
+ spacing_val = parparams.spacing().getValue();
+ } 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)
- + int(layout->parsep) * defaultRowHeight();
+ int const labeladdon = int(font_metrics::maxHeight(font) * layout->spacing.getValue() * spacing_val);
- if (is_rtl) {
- x = width_ - leftMargin() -
- font_metrics::width(str, font);
- }
+ int const maxdesc = int(font_metrics::maxDescent(font) * layout->spacing.getValue() * spacing_val)
+ + int(layout->parsep) * defaultRowHeight();
- pain_.text(int(x), yo_ - maxdesc - labeladdon, str, font);
+ if (is_rtl) {
+ x = width_ - leftMargin() -
+ font_metrics::width(str, font);
}
+
+ pain_.text(int(x), yo_ - maxdesc - labeladdon, str, font);
} else {
if (is_rtl) {
x = width_ - leftMargin()
// if we reach the end of a struck out range, paint it
// we also don't paint across things like tables
if (running_strikeout && (highly_editable_inset || !is_struckout)) {
- // FIXME this should take real text height into account, not
- // the whole row including padding whitespace
- //int const middle = yo_ + (- row_.ascent() + row_.top_of_text()) / 2;
- int const middle = yo_ - row_.ascent() / 2;
+ // calculate 1/3 height of the buffer's default font
+ int const middle =
+ yo_ - font_metrics::maxAscent(text_.defaultfont_) / 3;
pain_.line(last_strikeout_x, middle, int(x_), middle,
LColor::strikeout, Painter::line_solid, Painter::line_thin);
running_strikeout = false;
// if we reach the end of a struck out range, paint it
if (running_strikeout) {
- //top_of_text = font_metrics::maxAscent(font);
- //int const middle = yo_ - top_of_text() / 2;
- int const middle = yo_ - row_.ascent() / 2;
+ // calculate 1/3 height of the buffer's default font
+ int const middle =
+ yo_ - font_metrics::maxAscent(text_.defaultfont_) / 3;
pain_.line(last_strikeout_x, middle, int(x_), middle,
LColor::strikeout, Painter::line_solid, Painter::line_thin);
running_strikeout = false;