BOOST_ASSERT(pit >= 0);
BOOST_ASSERT(pit < int(text.paragraphs().size()));
-
- // check for possible inline completion
- DocIterator const & inlineCompletionPos = pi_.base.bv->inlineCompletionPos();
- inlineCompletionVPos_ = -1;
- if (inlineCompletionPos.inTexted()
- && inlineCompletionPos.text() == &text_
- && inlineCompletionPos.pit() == pit_) {
- // draw visually behind the previous character
- // FIXME: probably special RTL handling needed here
- inlineCompletionVPos_ = bidi_.log2vis(inlineCompletionPos.pos() - 1);
- }
}
FontInfo const font = getLabelFont();
FontMetrics const & fm = theFontMetrics(font);
- docstring const str = par_.getLabelstring();
+ docstring const str = par_.labelString();
if (!str.empty()) {
double x = x_;
layout->labeltype == LABEL_BIBLIO ||
layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT)) {
FontInfo const font = getLabelFont();
- if (!par_.getLabelstring().empty()) {
- docstring const str = par_.getLabelstring();
+ docstring const str = par_.labelString();
+ if (!str.empty()) {
double spacing_val = 1.0;
if (!parparams.spacing().isDefault())
spacing_val = parparams.spacing().getValue();
bool is_struckout = false;
int last_strikeout_x = 0;
+ // check for possible inline completion
+ DocIterator const & inlineCompletionPos = pi_.base.bv->inlineCompletionPos();
+ pos_type inlineCompletionVPos = -1;
+ if (inlineCompletionPos.inTexted()
+ && inlineCompletionPos.text() == &text_
+ && inlineCompletionPos.pit() == pit_
+ && inlineCompletionPos.pos() >= row_.pos()
+ && inlineCompletionPos.pos() <= row_.endpos()) {
+ // draw logically behind the previous character
+ inlineCompletionVPos = bidi_.log2vis(inlineCompletionPos.pos() - 1);
+ }
+
// Use font span to speed things up, see below
FontSpan font_span;
Font font;
font = text_metrics_.getDisplayFont(pit_, vpos);
// split font span if inline completion is inside
- if (font_span.first <= inlineCompletionVPos_
- && font_span.last > inlineCompletionVPos_)
- font_span.last = inlineCompletionVPos_;
+ if (font_span.first <= inlineCompletionVPos
+ && font_span.last > inlineCompletionVPos)
+ font_span.last = inlineCompletionVPos;
}
const int width_pos = pm_.singleWidth(pos, font);
}
// Is the inline completion in front of character?
- if (font.isRightToLeft() && vpos == inlineCompletionVPos_)
- paintInlineCompletion(font);
+ if (font.isRightToLeft() && vpos == inlineCompletionVPos)
+ paintInlineCompletion(font);
if (par_.isSeparator(pos)) {
Font const orig_font = text_metrics_.getDisplayFont(pit_, pos);
}
// Is the inline completion after character?
- if (!font.isRightToLeft() && vpos - 1 == inlineCompletionVPos_)
+ if (!font.isRightToLeft() && vpos - 1 == inlineCompletionVPos)
paintInlineCompletion(font);
}