]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.cpp
Store both sets of font selections
[lyx.git] / src / TextMetrics.cpp
index 15ecafe46c4e79b62ff0fea6b07d58b7bde50490..cd7beb2350878c688d60c1db9bd85ca5f7a6930f 100644 (file)
@@ -590,10 +590,10 @@ void TextMetrics::computeRowMetrics(pit_type const pit,
                        if (ns && !row.right_boundary()
                            && row.endpos() != par.size()) {
                                row.setSeparatorExtraWidth(double(w) / ns);
-                               row.dimension().wid = width;
+                               row.dimension().wid += w;
                        } else if (text_->isRTL(par)) {
-                               row.dimension().wid = width;
                                row.left_margin += w;
+                               row.dimension().wid += w;
                        }
                        break;
                }
@@ -602,7 +602,7 @@ void TextMetrics::computeRowMetrics(pit_type const pit,
                        row.dimension().wid += w;
                        break;
                case LYX_ALIGN_CENTER:
-                       row.dimension().wid = width - w / 2;
+                       row.dimension().wid += w / 2;
                        row.left_margin += w / 2;
                        break;
                case LYX_ALIGN_LEFT:
@@ -1956,8 +1956,8 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
                        rp.paintLast();
                if (i == 0 && is_rtl)
                        rp.paintFirst();
-               rp.paintTooLargeMarks(row_x < 0,
-                                     row_x + row.width() > bv_->workWidth());
+               rp.paintTooLargeMarks(row_x + row.left_x() < 0,
+                                     row_x + row.right_x() > bv_->workWidth());
                y += row.descent();
 
                // Restore full_repaint status.