]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.C
* src/frontends/qt4/QTocDialog.C (updateGui):
[lyx.git] / src / TextMetrics.C
index 7cc99b09050fa10834b224c6830fdf204b6f1b43..4d5add998c00577d8c9a7702c040d717e13a65b1 100644 (file)
@@ -85,18 +85,16 @@ int numberOfLabelHfills(Paragraph const & par, Row const & row)
 
 int numberOfHfills(Paragraph const & par, Row const & row)
 {
-       pos_type last = row.endpos();
+       pos_type const last = row.endpos();
        pos_type first = row.pos();
-       pos_type const par_size = par.size();
 
        // hfill *DO* count at the beginning of paragraphs!
        if (first) {
-               while (first < last && first < par_size && par.isHfill(first))
+               while (first < last && par.isHfill(first))
                        ++first;
        }
 
        first = max(first, par.beginOfBody());
-       last = min(last, par_size);
 
        int n = 0;
        for (pos_type p = first; p < last; ++p) {
@@ -260,6 +258,10 @@ bool TextMetrics::redoParagraph(pit_type const pit)
 
        par_metrics_[pit] = pm;
 
+       // Update the row change statuses. The painter will need that info
+       // in order to know which row has to be repainted.
+       par_metrics_[pit].updateRowChangeStatus();
+
        return changed;
 }
 
@@ -919,6 +921,26 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
 }
 
 
+pos_type TextMetrics::x2pos(pit_type pit, int row, int x) const
+{
+       ParagraphMetrics const & pm = parMetrics(pit);
+       BOOST_ASSERT(!pm.rows().empty());
+       BOOST_ASSERT(row < int(pm.rows().size()));
+       bool bound = false;
+       Row const & r = pm.rows()[row];
+       return r.pos() + getColumnNearX(pit, r, x, bound);
+}
+
+
+//int LyXText::pos2x(pit_type pit, pos_type pos) const
+//{
+//     ParagraphMetrics const & pm = parMetrics(pit);
+//     Row const & r = pm.rows()[row];
+//     int x = 0;
+//     pos -= r.pos();
+//}
+
+
 int defaultRowHeight()
 {
        return int(theFontMetrics(LyXFont(LyXFont::ALL_SANE)).maxHeight() *  1.2);