]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathData.cpp
Fix assertion when checking if change in selection
[lyx.git] / src / mathed / MathData.cpp
index 07decba9e5d26f4f66079e127a61e208ba017b18..1c7eaccfa4c73470bd891c2d0a41a1fcf165944f 100644 (file)
@@ -52,6 +52,14 @@ MathData::MathData(Buffer * buf, const_iterator from, const_iterator to)
 {}
 
 
+void MathData::setBuffer(Buffer & b)
+{
+       buffer_ = &b;
+       for (MathAtom & at : *this)
+               at.nucleus()->setBuffer(b);
+}
+
+
 MathAtom & MathData::operator[](pos_type pos)
 {
        LBUFERR(pos < size());
@@ -271,7 +279,7 @@ void MathData::metrics(MetricsInfo & mi, Dimension & dim, bool tight) const
        frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
        BufferView * bv = mi.base.bv;
        int const Iascent = fm.dimension('I').ascent();
-       int xascent = fm.dimension('x').ascent();
+       int xascent = fm.xHeight();
        if (xascent >= Iascent)
                xascent = (2 * Iascent) / 3;
        minasc_ = xascent;
@@ -288,7 +296,7 @@ void MathData::metrics(MetricsInfo & mi, Dimension & dim, bool tight) const
        if (tight)
                // FIXME: this is the minimal ascent seen empirically, check
                // what the TeXbook says.
-               dim.asc = max(dim.asc, fm.ascent('x'));
+               dim.asc = max(dim.asc, fm.xHeight());
        else {
                dim.asc = max(dim.asc, fm.maxAscent());
                dim.des = max(dim.des, fm.maxDescent());