]> git.lyx.org Git - lyx.git/commitdiff
Set vertical lines in math arrays correctly on Y axis
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 5 Sep 2016 09:29:44 +0000 (11:29 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 8 Sep 2016 14:30:25 +0000 (16:30 +0200)
This is a fixup to commit 39329935. The two fixes are
* add forgotten offset `y' when drawing the line
* in order to have a continuous vertical line, draw from the offset of
  the previous row.

Fixes bug #10363.

src/mathed/InsetMathGrid.cpp

index 9e41c9783aa9441e5a83742265c49f61aa205216..4e9de1de1034f8d01524220e2624da7b03de737d 100644 (file)
@@ -618,7 +618,7 @@ void InsetMathGrid::drawWithMargin(PainterInfo & pi, int x, int y,
                        col_type const c = col(idx);
                        if (r > 0 && r < nrows()) {
                                for (unsigned int i = 0; i < rowinfo_[r].lines_; ++i) {
-                                       int yy = y + rowinfo_[r].offset_
+                                       int const yy = y + rowinfo_[r].offset_
                                                - rowinfo_[r].ascent_
                                                - i * hlinesep()
                                                - hlinesep()/2 - rowsep()/2;
@@ -631,14 +631,17 @@ void InsetMathGrid::drawWithMargin(PainterInfo & pi, int x, int y,
                        }
                        if (c > 0 && c < ncols()) {
                                for (unsigned int i = 0; i < colinfo_[c].lines_; ++i) {
-                                       int xx = x + lmargin
+                                       int const xx = x + lmargin
                                                + colinfo_[c].offset_
                                                - i * vlinesep()
                                                - vlinesep()/2 - colsep()/2;
-                                       pi.pain.line(xx,
-                                               rowinfo_[r].offset_ - rowinfo_[r].ascent_,
-                                               xx,
-                                               rowinfo_[r].offset_ + rowinfo_[r].descent_,
+                                       int top_offset;
+                                       if (r > 0)
+                                               top_offset = rowinfo_[r - 1].offset_ + rowinfo_[r - 1].descent_;
+                                       else
+                                               top_offset = rowinfo_[0].offset_- rowinfo_[0].ascent_;
+                                       pi.pain.line(xx, y + top_offset,
+                                               xx, y + rowinfo_[r].offset_ + rowinfo_[r].descent_,
                                                Color_foreground);
                                }
                        }