X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_parinset.C;h=ae43ae750f15dc9641ea2f0641e91bcca957c7d3;hb=a7bfe9d7f1c112e4d502aaa9e7262f1866d723f7;hp=5f89fec97ab406839ee3281a6ba530593e5aef02;hpb=76957e7e5e6367d07c65767b3eaa4b577ea2d7be;p=lyx.git diff --git a/src/mathed/math_parinset.C b/src/mathed/math_parinset.C index 5f89fec97a..ae43ae750f 100644 --- a/src/mathed/math_parinset.C +++ b/src/mathed/math_parinset.C @@ -178,73 +178,72 @@ MathParInset::Metrics() while (data.OK()) { cx = data.GetChar(); if (cx >= ' ') { - string s = data.GetString(); + string const s = data.GetString(); mathed_string_height(data.fcode(), size(), s, asc, des); if (asc > ascent) ascent = asc; if (des > descent) descent = des; limits = false; mathed_char_height(LM_TC_CONST, size(), 'y', asc, des); - } else - if (MathIsInset(cx)) { - MathedInset * p = data.GetInset(); - p->SetStyle(size()); - p->Metrics(); - if (cx == LM_TC_UP) { - asc += (limits) ? p->Height() + 4: p->Ascent() + - ((p->Descent()>asc) ? p->Descent() - asc + 4: 0); - } else - if (cx == LM_TC_DOWN) { - des += ((limits) ? p->Height() + 4: p->Height() - p->Ascent() / 2); - } else { - asc = p->Ascent(); - des = p->Descent(); - } - if (asc > ascent) ascent = asc; - if (des > descent) descent = des; - if (cx!= LM_TC_UP && cx!= LM_TC_DOWN) - limits = p->GetLimits(); - data.Next(); - } else - if (cx == LM_TC_TAB) { - int x, y; - data.GetIncPos(x, y); - if (data.IsFirst() || cxp == LM_TC_TAB || cxp == LM_TC_CR) { - if (ascentSetStyle(size()); + p->Metrics(); + if (cx == LM_TC_UP) { + asc += (limits) ? p->Height() + 4: p->Ascent() + + ((p->Descent()>asc) ? p->Descent() - asc + 4: 0); + } else if (cx == LM_TC_DOWN) { + des += (limits ? p->Height() + 4 : p->Height() - p->Ascent() / 2); + } else { + asc = p->Ascent(); + des = p->Descent(); + } + if (asc > ascent) ascent = asc; + if (des > descent) descent = des; + if (cx!= LM_TC_UP && cx!= LM_TC_DOWN) + limits = p->GetLimits(); + data.Next(); + } else if (cx == LM_TC_TAB) { + int x; + int y; + data.GetIncPos(x, y); + if (data.IsFirst() || cxp == LM_TC_TAB || cxp == LM_TC_CR) { + if (ascent < df_asc) ascent = df_asc; + tb = x; + } + data.setTab(x - tb, tab); + tb = x; + ++tab; + limits = false; + data.Next(); + } else if (cx == LM_TC_CR) { + if (tb > 0) { + int x; + int y; + data.GetIncPos(x, y); + if (data.IsFirst() || cxp == LM_TC_TAB || cxp == LM_TC_CR) { + if (ascent < df_asc) ascent = df_asc; tb = x; - ++tab; - limits = false; - data.Next(); - } else - if (cx == LM_TC_CR) { - if (tb > 0) { - int x, y; - data.GetIncPos(x, y); - if (data.IsFirst() || cxp == LM_TC_TAB || cxp == LM_TC_CR) { - if (ascent