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

Поправила баги, связанные с выравниваем строк (отличных от первой) и с...

Поправила баги, связанные с выравниваем строк (отличных от первой) и с разбиением на строки не inline формул (добавила проверку на выход за границы по break operator для случаев, когда операторы располагаются в начале строк)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@61313 954022d7-b5bf-4e40-9824-e11837661b57
parent 455abb2f
......@@ -847,7 +847,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
var RecalcResult = PRS.RecalcResult,
RecalcInfoObject = PRS.PrevLineRecalcInfo.Object;
var CurrentPage = Page - this.FirstPage;
var MathSettings = Get_WordDocumentDefaultMathSettings();
// первый пересчет
......@@ -855,10 +855,8 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{
if(false == MathSettings.Get_DispDef() || this.ParaMathRPI.bInline)
this.State = ALIGN_EMPTY;
else if(CurrentPage == 0)
this.State = ALIGN_MARGIN_WRAP;
else
this.State = ALIGN_MARGIN;
this.State = ALIGN_MARGIN_WRAP;
this.FirstPage = Page;
this.CurPageInfo.Page = -1;
......@@ -874,11 +872,16 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
this.Root.PreRecalc(null, this, ArgSize, RPI);
}
var CurrentPage = Page - this.FirstPage;
if(this.CurPageInfo.Page < Page)
{
this.CurPageInfo.Page = Page;
this.CurPageInfo.FirstLine = ParaLine - this.Root.StartLine;
this.CurPageInfo.MaxLineW = 0;
if(CurrentPage !== 0)
this.State = ALIGN_MARGIN;
}
PRS.X += MathSettings.Get_LeftMargin(this.State);
......
......@@ -2123,19 +2123,28 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{
if(this.ParaMath.Is_BrkBinBefore() == true)
{
if(Word == true)
var BrkLen = Item.Width/TEXTWIDTH_DIVIDER;
if(X + WordLen + SpaceLen + BrkLen > XEnd && FirstItemOnLine == false) // Слово не убирается в отрезке. Переносим слово в следующий отрезок
{
MoveToLBP = true;
NewRange = true;
PRS.Set_LineBreakPos(Pos);
}
else if(Word == true)
{
X += SpaceLen + WordLen;
PRS.Set_LineBreakPos(Pos);
EmptyLine = false;
WordLen = Item.Width/TEXTWIDTH_DIVIDER;
WordLen = BrkLen;
SpaceLen = 0;
FirstItemOnLine = false;
}
else
{
SpaceLen += Item.Width / TEXTWIDTH_DIVIDER;//SpaceLen += Item.Get_Width();
SpaceLen += BrkLen;//SpaceLen += Item.Get_Width();
}
}
else
......@@ -2163,7 +2172,6 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
Word = false;
}
}
break;
......@@ -4223,7 +4231,7 @@ ParaRun.prototype.Get_ParaContentPosByXY = function(SearchPos, Depth, _CurLine,
if(this.Type == para_Math_Run)
{
var PosLine = this.ParaMath.GetLinePosition(_CurLine);
var loc = this.Content[CurPos].GetLocationOfLetter()
var loc = this.Content[CurPos].GetLocationOfLetter();
SearchPos.CurX = PosLine.x + loc.x; // позиция формулы в строке + смещение буквы в контенте
}
......
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