]> git.lyx.org Git - features.git/commitdiff
Reuse some code and simplify InsetTabular::cursorPos()
authorVincent van Ravesteijn <vfr@lyx.org>
Thu, 25 Nov 2010 13:22:04 +0000 (13:22 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Thu, 25 Nov 2010 13:22:04 +0000 (13:22 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36487 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/InsetTabular.cpp
src/insets/InsetTabular.h

index 7818b709cbaa49e108a2f9141789df3c2623d6ea..311143345a142d306a5d96e9deae25534a92d99f 100644 (file)
@@ -4720,21 +4720,13 @@ void InsetTabular::cursorPos(BufferView const & bv,
 {
        cell(sl.idx())->cursorPos(bv, sl, boundary, x, y);
 
-       int const row = tabular.cellRow(sl.idx());
-       int const col = tabular.cellColumn(sl.idx());
-
        // y offset     correction
-       for (int r = 0; r < row; ++r)
-               y += tabular.rowDescent(r) + tabular.rowAscent(r + 1) 
-                       + tabular.interRowSpace(r + 1);
-
+       y += cellYPos(sl.idx());
        y += tabular.textVOffset(sl.idx());
        y += offset_valign_;
 
        // x offset correction
-       for (int c = 0; c < col; ++c)
-               x += tabular.column_info[c].width;
-       
+       x += cellXPos(sl.idx());
        x += tabular.textHOffset(sl.idx());
        x += ADD_TO_TABULAR_WIDTH;
        x += scx_;
@@ -4807,13 +4799,23 @@ InsetTabular::idx_type InsetTabular::getNearestCell(BufferView & bv, int x, int
 }
 
 
+int InsetTabular::cellYPos(idx_type const cell) const
+{
+       row_type row = tabular.cellRow(cell);
+       int ly = 0;
+       for (row_type r = 0; r < row; ++r)
+               ly += tabular.rowDescent(r) + tabular.rowAscent(r + 1) 
+                       + tabular.interRowSpace(r + 1);
+       return ly;
+}
+
+
 int InsetTabular::cellXPos(idx_type const cell) const
 {
        col_type col = tabular.cellColumn(cell);
        int lx = 0;
        for (col_type c = 0; c < col; ++c)
                lx += tabular.column_info[c].width;
-
        return lx;
 }
 
index 2a7b23980f998e0ed55fbc7547af0d9d26dfae39..0b192b83bd2a8445eeed2863e06c76204476ab44 100644 (file)
@@ -928,6 +928,8 @@ private:
        ///
        int cellXPos(idx_type cell) const;
        ///
+       int cellYPos(idx_type cell) const;
+       ///
        void resetPos(Cursor & cur) const;
        ///
        bool copySelection(Cursor & cur);