The branch, rowpainter2, has been updated.

- Log -----------------------------------------------------------------

commit 1de0d2a19bf76cdbff30de2b3a9e3abfd1777c41
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Thu Jul 16 23:10:44 2015 +0200

    Code cleanup in RowPainter
    
    * move some code that handle selection to paintInset()
    
    * change the arguments of paintSeparator()

diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp
index 70c32aa..2545362 100644
--- a/src/RowPainter.cpp
+++ b/src/RowPainter.cpp
@@ -116,6 +116,13 @@ int RowPainter::leftMargin() const
 
 void RowPainter::paintInset(Inset const * inset, pos_type const pos)
 {
+       // Handle selection
+       bool const pi_selected = pi_.selected;
+       Cursor const & cur = pi_.base.bv->cursor();
+       if (cur.selection() && cur.text() == &text_
+               && cur.normalAnchor().text() == &text_)
+               pi_.selected = row_.sel_beg <= pos && row_.sel_end > pos;
+
        Font const font = text_metrics_.displayFont(pit_, pos);
 
        LASSERT(inset, return);
@@ -150,6 +157,7 @@ void RowPainter::paintInset(Inset const * inset, pos_type 
const pos)
        pi_.full_repaint = pi_full_repaint;
        pi_.change_ = prev_change;
        pi_.do_spellcheck = pi_do_spellcheck;
+       pi_.selected = pi_selected;
 
 #ifdef DEBUG_METRICS
        int const x2 = x1 + dim.wid;
@@ -163,10 +171,9 @@ void RowPainter::paintInset(Inset const * inset, pos_type 
const pos)
 }
 
 
-void RowPainter::paintSeparator(double orig_x, double width,
-       FontInfo const & font)
+void RowPainter::paintSeparator(double width, Font const & font)
 {
-       pi_.pain.textDecoration(font, int(orig_x), yo_, int(width));
+       pi_.pain.textDecoration(font.fontInfo(), int(x_), yo_, int(width));
        x_ += width;
 }
 
@@ -845,21 +852,14 @@ void RowPainter::paintText()
                        double separator_width = width_pos;
                        if (pos >= body_pos)
                                separator_width += row_.separator;
-                       paintSeparator(orig_x, separator_width, 
orig_font.fontInfo());
+                       paintSeparator(separator_width, orig_font);
                        paintForeignMark(orig_x, orig_font.language());
                        ++vpos;
 
                } else if (inset) {
                        // If outer row has changed, nested insets are repaint 
completely.
                        pi_.base.bv->coordCache().insets().add(inset, int(x_), 
yo_);
-
-                       bool const pi_selected = pi_.selected;
-                       Cursor const & cur = pi_.base.bv->cursor();
-                       if (cur.selection() && cur.text() == &text_
-                                 && cur.normalAnchor().text() == &text_)
-                               pi_.selected = row_.sel_beg <= pos && 
row_.sel_end > pos;
                        paintInset(inset, pos);
-                       pi_.selected = pi_selected;
                        ++vpos;
 
                } else {
diff --git a/src/RowPainter.h b/src/RowPainter.h
index 95c6426..f3dc1ad 100644
--- a/src/RowPainter.h
+++ b/src/RowPainter.h
@@ -70,11 +70,12 @@ public:
        void paintFirst() const;
        void paintLast();
        void paintText();
+       void paintText2();
        void paintOnlyInsets();
        void paintSelection() const;
 
 private:
-       void paintSeparator(double orig_x, double width, FontInfo const & font);
+       void paintSeparator(double width, Font const & font);
        void paintForeignMark(double orig_x, Language const * lang, int desc = 
0) const;
        void paintStringAndSel(docstring const & str, Font const & font,
                          Change const & change,

-----------------------------------------------------------------------

Summary of changes:
 src/RowPainter.cpp |   22 +++++++++++-----------
 src/RowPainter.h   |    3 ++-
 2 files changed, 13 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
Repository for new features

Reply via email to