} 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;
yy += text->getPar(pit).descent();
}
-
- // paint one paragraph above and one below
+ // Cache one paragraph above and one below
// Note MV: this cannot be suppressed even for singlepar.
// Try viewing the User Guide Mobius figure
+
if (vi.p1 > 0) {
text->redoParagraph(vi.p1 - 1);
- paintPar(pi, *bv.text(), vi.p1 - 1, 0,
- vi.y1 - text->getPar(vi.p1 - 1).descent());
+ theCoords.parPos()[bv.text()][vi.p1 - 1] =
+ Point(0, vi.y1 - text->getPar(vi.p1 - 1).descent());
}
if (vi.p2 < lyx::pit_type(text->paragraphs().size()) - 1) {
text->redoParagraph(vi.p2 + 1);
- paintPar(pi, *bv.text(), vi.p2 + 1, 0,
- vi.y2 + text->getPar(vi.p2 + 1).ascent());
+ theCoords.parPos()[bv.text()][vi.p2 + 1] =
+ Point(0, vi.y2 + text->getPar(vi.p2 + 1).ascent());
}
// and grey out above (should not happen later)
// lyxerr << "par ascent: " << text->getPar(vi.p1).ascent() << endl;
- if (vi.y1 > 0)
+ if (vi.y1 > 0 && !vi.singlepar)
pain.fillRectangle(0, 0, bv.workWidth(), vi.y1, LColor::bottomarea);
// and possibly grey out below
// lyxerr << "par descent: " << text->getPar(vi.p1).ascent() << endl;
- if (vi.y2 < bv.workHeight())
+ if (vi.y2 < bv.workHeight() && !vi.singlepar)
pain.fillRectangle(0, vi.y2, bv.workWidth(), bv.workHeight() - vi.y2, LColor::bottomarea);
}