summaryrefslogtreecommitdiff
path: root/starmath/source/node.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'starmath/source/node.cxx')
-rw-r--r--starmath/source/node.cxx28
1 files changed, 20 insertions, 8 deletions
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index 7767b7022e2b..c5ae4135357f 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -1700,19 +1700,31 @@ void SmOperNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
assert(pOper);
assert(pBody);
- pBody->Arrange(rDev,rFormat);
- long nHeight = pBody->GetHeight();
+ //patch pBody->Arrange(rDev,rFormat);
+ //patch 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);
- 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);
+ //patch pSymbol->AdaptToY(rDev,nHeight);
+ //patch pSymbol->Arrange(rDev, rFormat);
+ //patch Point aPos= pSymbol->AlignTo(*pBody, RectPos::Left, RectHorAlign::Center, RectVerAlign::Mid);
+ //patch aPos.Y() = pSymbol->GetTop()+pBody->GetBottom() - pSymbol->GetBottom();
+ //patch pSymbol->MoveTo(aPos);
+ 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);
SmRect::operator = (*pBody);
- ExtendBy(*pSymbol, RectCopyMBL::This);
+ //patch ExtendBy(*pSymbol, RectCopyMBL::This);
+ ExtendBy(*pOper, RectCopyMBL::This);
}