pi_.base.font = inset->inheritFont() ? font.fontInfo() :
pi_.base.bv->buffer().params().getFont().fontInfo();
pi_.ltr_pos = (bidi_.level(pos) % 2 == 0);
+ Change prev_change = change_;
pi_.change_ = change_.changed() ? change_ : par_.lookupChange(pos);
int const x1 = int(x_);
// Restore full_repaint status.
pi_.full_repaint = pi_full_repaint;
+ pi_.change_ = prev_change;
#ifdef DEBUG_METRICS
int const x2 = x1 + dim.wid;
str.reserve(100);
str.push_back(prev_char);
+ // FIXME: Why only round brackets and why the difference to
+ // Hebrew? See also Paragraph::getUChar
if (arabic) {
char_type c = str[0];
if (c == '(')
break;
*/
+ // FIXME: Why only round brackets and why the difference to
+ // Hebrew? See also Paragraph::getUChar
if (arabic) {
if (c == '(')
c = ')';
}
+void RowPainter::paintSeparator(double orig_x, double width,
+ FontInfo const & font)
+{
+ pi_.pain.textDecoration(font, int(orig_x), yo_, int(width));
+ x_ += width;
+}
+
+
void RowPainter::paintForeignMark(double orig_x, Language const * lang,
int desc)
{
if (par_.isSeparator(pos)) {
Font const orig_font = text_metrics_.displayFont(pit_, pos);
double const orig_x = x_;
- x_ += width_pos;
+ double separator_width = width_pos;
if (pos >= body_pos)
- x_ += row_.separator;
+ separator_width += row_.separator;
+ paintSeparator(orig_x, separator_width, orig_font.fontInfo());
paintForeignMark(orig_x, orig_font.language());
++vpos;