tdf#53472 Integral Symbols too small for some integrands
Change-Id: I1ab550821f0b254a7414246fd72f3882b7140c90
Signed-off-by: melikeyurtoglu <aysemelikeyurtoglu@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/21482
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index a518df4..2ee43f9 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -1864,23 +1864,19 @@ void SmOperNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
OSL_ENSURE(pOper, "Sm: missing subnode");
OSL_ENSURE(pBody, "Sm: missing subnode");
pBody->Arrange(rDev,rFormat);
long nHeight = pBody->GetHeight();
SmNode *pSymbol = GetSymbol();
pSymbol->SetSize(Fraction(CalcSymbolHeight(*pSymbol, rFormat),
pSymbol->GetFont().GetFontSize().Height()));
pBody->Arrange(rDev, rFormat);
pOper->Arrange(rDev, rFormat);
long nOrigHeight = GetFont().GetFontSize().Height(),
nDist = nOrigHeight
* rFormat.GetDistance(DIS_OPERATORSPACE) / 100L;
Point aPos = pOper->AlignTo(*pBody, RectPos::Left, RectHorAlign::Center, /*RectVerAlign::CenterY*/RectVerAlign::Mid);
aPos.X() -= nDist;
pOper->MoveTo(aPos);
pSymbol->AdaptToY(rDev,nHeight);
pSymbol->Arrange(rDev, rFormat);
Point aPos= pSymbol->AlignTo(*pBody, RectPos::Left, RectHorAlign::Center, RectVerAlign::Mid);
aPos.Y() = pSymbol->GetTop()+pBody->GetBottom() - pSymbol->GetBottom();
pSymbol->MoveTo(aPos);
SmRect::operator = (*pBody);
ExtendBy(*pOper, RCP_THIS);
ExtendBy(*pSymbol, RCP_THIS);
}