The overset, underset, and stackrel insets behave like the script
rather than the fraction inset.
This commit is contained in:
Enrico Forestieri 2018-11-12 21:16:14 +01:00
parent d32ca31ecf
commit 704eede69b
4 changed files with 8 additions and 6 deletions

View File

@ -34,7 +34,7 @@ void InsetMathOverset::metrics(MetricsInfo & mi, Dimension & dim) const
Changer dummy2 = mi.base.changeEnsureMath(); Changer dummy2 = mi.base.changeEnsureMath();
Dimension dim1; Dimension dim1;
cell(1).metrics(mi, dim1); cell(1).metrics(mi, dim1);
Changer dummy = mi.base.changeFrac(); Changer dummy = mi.base.changeScript();
Dimension dim0; Dimension dim0;
cell(0).metrics(mi, dim0); cell(0).metrics(mi, dim0);
dim.wid = max(dim0.width(), dim1.wid) + 4; dim.wid = max(dim0.width(), dim1.wid) + 4;
@ -52,7 +52,7 @@ void InsetMathOverset::draw(PainterInfo & pi, int x, int y) const
int m = x + dim.wid / 2; int m = x + dim.wid / 2;
int yo = y - dim1.asc - dim0.des - 1; int yo = y - dim1.asc - dim0.des - 1;
cell(1).draw(pi, m - dim1.wid / 2, y); cell(1).draw(pi, m - dim1.wid / 2, y);
Changer dummy = pi.base.changeFrac(); Changer dummy = pi.base.changeScript();
cell(0).draw(pi, m - dim0.width() / 2, yo); cell(0).draw(pi, m - dim0.width() / 2, yo);
} }

View File

@ -64,7 +64,7 @@ void InsetMathStackrel::metrics(MetricsInfo & mi, Dimension & dim) const
Changer dummy2 = mi.base.changeEnsureMath(); Changer dummy2 = mi.base.changeEnsureMath();
Dimension dim1; Dimension dim1;
cell(1).metrics(mi, dim1); cell(1).metrics(mi, dim1);
Changer dummy = mi.base.changeFrac(); Changer dummy = mi.base.changeScript();
Dimension dim0; Dimension dim0;
cell(0).metrics(mi, dim0); cell(0).metrics(mi, dim0);
if (nargs() > 2) { if (nargs() > 2) {
@ -90,7 +90,7 @@ void InsetMathStackrel::draw(PainterInfo & pi, int x, int y) const
int m = x + dim.width() / 2; int m = x + dim.width() / 2;
int yo = y - dim1.ascent() - dim0.descent() - 1; int yo = y - dim1.ascent() - dim0.descent() - 1;
cell(1).draw(pi, m - dim1.width() / 2, y); cell(1).draw(pi, m - dim1.width() / 2, y);
Changer dummy = pi.base.changeFrac(); Changer dummy = pi.base.changeScript();
cell(0).draw(pi, m - dim0.width() / 2, yo); cell(0).draw(pi, m - dim0.width() / 2, yo);
if (nargs() > 2) { if (nargs() > 2) {
Dimension const & dim2 = cell(2).dimension(*pi.base.bv); Dimension const & dim2 = cell(2).dimension(*pi.base.bv);

View File

@ -35,7 +35,7 @@ void InsetMathUnderset::metrics(MetricsInfo & mi, Dimension & dim) const
Changer dummy2 = mi.base.changeEnsureMath(); Changer dummy2 = mi.base.changeEnsureMath();
Dimension dim1; Dimension dim1;
cell(1).metrics(mi, dim1); cell(1).metrics(mi, dim1);
Changer dummy = mi.base.changeFrac(); Changer dummy = mi.base.changeScript();
Dimension dim0; Dimension dim0;
cell(0).metrics(mi, dim0); cell(0).metrics(mi, dim0);
dim.wid = max(dim0.width(), dim1.width()) + 4; dim.wid = max(dim0.width(), dim1.width()) + 4;
@ -53,7 +53,7 @@ void InsetMathUnderset::draw(PainterInfo & pi, int x, int y) const
int m = x + dim.wid / 2; int m = x + dim.wid / 2;
int yo = y + dim1.descent() + dim0.ascent() + 1; int yo = y + dim1.descent() + dim0.ascent() + 1;
cell(1).draw(pi, m - dim1.width() / 2, y); cell(1).draw(pi, m - dim1.width() / 2, y);
Changer dummy = pi.base.changeFrac(); Changer dummy = pi.base.changeScript();
cell(0).draw(pi, m - dim0.width() / 2, yo); cell(0).draw(pi, m - dim0.width() / 2, yo);
} }

View File

@ -179,6 +179,8 @@ What's new
- Fix display issue of individual pre- and posttext in citation dialog - Fix display issue of individual pre- and posttext in citation dialog
(biblatex only) (bug 11352). (biblatex only) (bug 11352).
- Fix display of overset, underset, and stackrel insets (bug 11367).
* INTERNALS * INTERNALS