Commit 408174a7 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

Поправила баг : приоритет у Box-оператора выше, чем у оператора,...

Поправила баг : приоритет у Box-оператора выше, чем у оператора, расположенного во вложенном контенте

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@66290 954022d7-b5bf-4e40-9824-e11837661b57
parent b8b057fb
...@@ -3954,11 +3954,6 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -3954,11 +3954,6 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
PRS.NewRange = true; PRS.NewRange = true;
PRS.MoveToLBP = true; PRS.MoveToLBP = true;
} }
/*else
{
Item.Recalculate_Range(PRS, ParaPr, Depth + 1);
}*/
} }
} }
else // контент может занимать несколько строк else // контент может занимать несколько строк
...@@ -3981,11 +3976,9 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -3981,11 +3976,9 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
// перед мат объектом идет box break_operator и он не является первым элементом в строке // перед мат объектом идет box break_operator и он не является первым элементом в строке
if(Item.kind == MATH_BOX) if(Item.kind == MATH_BOX)
{ {
if(true == Item.IsBreak(bInline)) if(true == Item.IsBreak(bInline))
{ {
this.private_ForceBreakBox(PRS, Item, _Depth, PrevLastPos, LastPos); // _Depth, PrevLastPos, LastPos запоминаем до пересчета, поэтому передаем эти параметры в функцию this.private_ForceBreakBox(PRS, Item, _Depth, PrevLastPos, LastPos); // _Depth, PrevLastPos, LastPos запоминаем до пересчета, поэтому передаем эти параметры в функцию
} }
else if(true == Item.IsOperatorEmulator()) else if(true == Item.IsOperatorEmulator())
{ {
...@@ -4063,6 +4056,7 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -4063,6 +4056,7 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{ {
PRS.MathFirstItem = false; PRS.MathFirstItem = false;
} }
var CheckWrapIndent = PRS.bFirstLine == true ? PRS.X - PRS.XRange > PRS.WrapIndent : true; var CheckWrapIndent = PRS.bFirstLine == true ? PRS.X - PRS.XRange > PRS.WrapIndent : true;
if(PRS.bInsideOper == true && CheckWrapIndent == true) if(PRS.bInsideOper == true && CheckWrapIndent == true)
...@@ -4170,23 +4164,34 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev ...@@ -4170,23 +4164,34 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev
var BoxLen = Box.size.width, var BoxLen = Box.size.width,
BoxGapRight = Box.GapRight; BoxGapRight = Box.GapRight;
var CheckWrapIndent = PRS.bFirstLine == true ? PRS.X - PRS.XRange > PRS.WrapIndent : true;
var bOperBefore = this.ParaMath.Is_BrkBinBefore() == true;
var bOnlyForcedBreakBefore = bOperBefore == true && PRS.MathFirstItem == false,
bOnlyforcedBreakAfter = bOperBefore == false;
if(CheckWrapIndent == true && (bOnlyForcedBreakBefore || bOnlyforcedBreakAfter))
{
PRS.bOnlyForcedBreak = true;
}
var bOverXEnd; var bOverXEnd;
if(true === this.ParaMath.Is_BrkBinBefore()) // оператор находится в начале строки if(bOperBefore) // оператор находится в начале строки
{ {
bOverXEnd = PRS.X + PRS.WordLen + PRS.SpaceLen > PRS.XEnd; bOverXEnd = PRS.X + PRS.WordLen + PRS.SpaceLen > PRS.XEnd;
if(PRS.FirstItemOnLine == false && bOverXEnd) if(true == PRS.MathFirstItem)
{
PRS.WordLen += PRS.SpaceLen + PRS.WordLen + BoxLen;
}
else if(PRS.FirstItemOnLine == false && bOverXEnd)
{ {
PRS.MoveToLBP = true; PRS.MoveToLBP = true;
PRS.NewRange = true; PRS.NewRange = true;
this.ParaMath.UpdateWidthLine(PRS, PRS.X - PRS.XRange); this.ParaMath.UpdateWidthLine(PRS, PRS.X - PRS.XRange);
} }
else if(true == PRS.MathFirstItem)
{
PRS.WordLen += PRS.SpaceLen + PRS.WordLen + BoxLen;
}
else else
{ {
PRS.X += PRS.SpaceLen + PRS.WordLen; PRS.X += PRS.SpaceLen + PRS.WordLen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment