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

1. Поправила зависание документа. Когда 2 раза вызывается ф-ия UpdateWidthLine...

1. Поправила зависание документа. Когда 2 раза вызывается ф-ия UpdateWidthLine : первый раз в Run, а второй раз в MathContent,после вызова UpdateWidthLine в Run выставлялись поля в PRS, в тч  PRS.OperGapRight, соответственно при втором вызове в mathContent ширина строки менялась и делался пересчет с самого начала
2. Поправила баг для End 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@63716 954022d7-b5bf-4e40-9824-e11837661b57
parent 1459a7b5
......@@ -2710,33 +2710,6 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
}
}
if(this.Type == para_Math_Run)
{
if(true === NewRange)
{
var WidthLine = X - XRange;
if(this.ParaMath.Is_BrkBinBefore() == false)
WidthLine += SpaceLen;
this.ParaMath.UpdateWidthLine(PRS, WidthLine);
}
else
{
// для пустого Run, обновляем LineBreakPos на случай, если пустой Run находится между break_operator (мат. объект) и мат объектом
if(this.Content.length == 0 && this.ParaMath.Is_BrkBinBefore() == false && Word == false && PRS.bBoxOperator == true)
{
PRS.Set_LineBreakPos(Pos);
X += SpaceLen;
SpaceLen = 0;
}
// запоминаем конец Run
PRS.PosEndRun = PRS.CurPos.Copy();
PRS.PosEndRun.Update2(this.Content.length, Depth);
}
}
PRS.MoveToLBP = MoveToLBP;
PRS.NewRange = NewRange;
......@@ -2765,6 +2738,34 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
PRS.bNoOneBreakOperator = bNoOneBreakOperator;
if(this.Type == para_Math_Run)
{
if(true === NewRange)
{
var WidthLine = X - XRange;
if(this.ParaMath.Is_BrkBinBefore() == false)
WidthLine += SpaceLen;
this.ParaMath.UpdateWidthLine(PRS, WidthLine);
}
else
{
// для пустого Run, обновляем LineBreakPos на случай, если пустой Run находится между break_operator (мат. объект) и мат объектом
if(this.Content.length == 0 && this.ParaMath.Is_BrkBinBefore() == false && Word == false && PRS.bBoxOperator == true)
{
PRS.Set_LineBreakPos(Pos);
X += SpaceLen;
SpaceLen = 0;
}
// запоминаем конец Run
PRS.PosEndRun = PRS.CurPos.Copy();
PRS.PosEndRun.Update2(this.Content.length, Depth);
}
}
if ( Pos >= ContentLen )
{
RangeEndPos = Pos;
......
......@@ -4225,11 +4225,6 @@ CMathContent.prototype.Get_LineBound = function(_CurLine, _CurRange)
return this.Bounds.Get_LineBound(CurLine, CurRange);
};
/*CMathContent.prototype.SetPage = function(Line, Page)
{
var CurLine = Line - this.StartLine;
this.Bounds.SetPage(CurLine, Page);
};*/
CMathContent.prototype.GetPos = function(_CurLine, _CurRange)
{
var CurLine = _CurLine - this.StartLine,
......@@ -4331,7 +4326,7 @@ CMathContent.prototype.Get_EndRangePos = function(_CurLine, _CurRange, SearchPos
else if(this.bRoot && CurPos !== EndPos)
{
if(this.Content[EndPos].Type == para_Math_Composition)
Result = this.Content[EndPos].Get_StartRangePos(_CurLine, _CurRange, SearchPos, Depth + 1, true);
Result = this.Content[EndPos].Get_EndRangePos(_CurLine, _CurRange, SearchPos, Depth + 1, true);
else
Result = this.Content[EndPos].Math_Get_EndRangePos(_CurLine, _CurRange, SearchPos, Depth + 1, true);
......
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